Есть форма с двумя кнопками
echo CHtml::button('button',array('id'=>'qwer'));
echo CHtml::ajaxButton('load_script',$this->createUrl('/test/test'),array(
'update' => '#test',
'cache' => false,
));
в экшене test :
$this->renderPartial('_testview', array(),false,true);
в _testview:
Yii::app()->clientScript->registerScript('#script',
'$("body").undelegate("#qwer","click").delegate("#qwer","click",function(){alert("1");})');
Yii::app()->clientScript->registerScript('#script',
'$("body").undelegate("#qwer","click").delegate("#qwer","click",function(){alert("2");})');
два скрипта - проверял undelegate вообще работает или нет - работает второй скрипт выключает первый, но не выключает второй, который был загружен прошлый раз. После нажатия кнопки ‘load_script’ количество alert(“2”), навешанных на кнопку ‘button’ увеличивается на единицу. Я предполагал что undelegate("#qwer",“click”) удалит все обработчики.
В реальной задачи вместо скрипта с алертом еще несколько CHtml::ajaxButton, но yii генерирует такой же код с '$(“body”).undelegate("#qwer",“click”).delegate("#qwer",“click”,function(){…}) и они тоже дублируются.
версия Yii 1.1.7 (Mar 26, 2011)
Подскажите, пожалуйста, как с этим бороться?