Я знаю, что live
устарела. Теперь я использую Yii grid view, и у меня есть следующий код:
$this->widget('zii.widgets.grid.CGridView', array( 'id' => 'category-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array( 'title', array( 'class' => 'CButtonColumn', 'viewButtonUrl' => 'Yii::app()->createUrl("/shop/category/view", array("id" => $data->category_id))', 'updateButtonUrl' => 'Yii::app()->createUrl("/shop/category/update", array("id" => $data->category_id))', 'deleteButtonUrl' => 'Yii::app()->createUrl("/shop/category/delete", array("id" => $data->category_id))', ), ), ));
В браузере это дает мне ошибку:
typeError: jQuery(...).live is not a function [Break On This Error] jQuery('#category-grid a.delete').live('click',function() {
Я смущен, поскольку я искал всю папку для функции .live, но я не могу ее найти. Пожалуйста помоги!
Я думаю, что это из-за версии Yii. Он может использовать .live()
который устарел.
Одним из возможных решений может быть переход на yii/framework/zii/widgets/grid
и редактирование CButtonColumn.php
В этом замените .live()
на .on()
Я думаю, тогда это должно сработать.
живая функция jquery обесценивается … если вы используете другую версию jquery, чем встроенный yii … показать документацию jQuery для метода live () … вместо этого использовать метод .on () или .delegate (). .. я не уверен … но это может быть одно решение, если вы используете другую версию jquery, чем buit in …
на этой странице Документация Jquery live () Начиная с jQuery 1.7, метод .live () устарел. Используйте .on () для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate () в предпочтении .live ().
поэтому он не будет работать forjquery version> = 1.7
Вы можете повторно написать действие javascript по умолчанию, выполнив это
//I a'm commenting your delete url config //'deleteButtonUrl' => 'Yii::app()->createUrl("/shop/category/delete",array("id" => $data->id))', 'buttons' => array( 'delete' => array( 'url'=>'Yii::app()->createUrl("/shop/category/delete",array("id" => $data->id))', 'click' => 'js:function(evt)' . '{' . 'evt.preventDefault();' . 'alert("Your functionality Will Come here. Or Call a function");' . '}' ), )