Смена CHtml live на delegate Jquery

Уже исправленные репорты или принятые предложения
Закрыто
evgen
Сообщения: 14
Зарегистрирован: 2009.11.13, 14:33
Откуда: Красноярск
Контактная информация:

Смена CHtml live на delegate Jquery

Сообщение evgen »

Приветствую!

Возникла проблема. С недавних пор в репозитарии поменяли событие у CHtml::clientChange jQuery.live на .delegate.
И после этого перестал срабатывать handler.

При .live все ок, арбайтает, а вот при .delegate ни в какую. Firebug даже не перехватывает.
Кто уже столкнулся с данной траблой - поделитесь если решили.

Код: Выделить всё

     <?= CHtml::activeDropDownList($model, 'first_id', $listFirst, array('ajax' => array(
                                        'type'   =>     'POST',
                                        'url'    =>     $this->createUrl('/ajax/json', array('mode'=>'second')), 
                                        'update' => '#second_id',
                                        'data'=>array('rid'=>'js:$(this).val()'),
                                ))); ?> - <?= CHtml::activeDropDownList($model, 'second_id',$listSecond, array('id'=>'second_id')); ?>
Вот что генерит CHtml:

Код: Выделить всё

/*<![CDATA[*/
jQuery(document).ready(function() {
jQuery('body').delegate('#Notes2_first_id','change',function(){jQuery.ajax({'type':'POST','url':'/ajax/json/mode/second','data':{'rid':$(this).val()},'cache':false,'success':function(html){jQuery("#second_id").html(html)}});return false;}); 
... 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Смена CHtml live на delegate Jquery

Сообщение samdark »

Приведённого кода достаточно для воспроизведения?
evgen
Сообщения: 14
Зарегистрирован: 2009.11.13, 14:33
Откуда: Красноярск
Контактная информация:

Re: Смена CHtml live на delegate Jquery

Сообщение evgen »

Вопрос решен.

Цитирую как отписался в issues:

There was a problem with a compability with JFromValidate extension.
Addittional for exception with extension JFormValidate:

JFormValidate overrides JQuery's method .delegate.
Solved this with renaming in extension js delegate to another method like this:

Код: Выделить всё

$.extend($.fn, {
delegateEx: function(type, delegateEx, handler) {
return this.bind(type, function(event) {
var target = $(event.target);
if (target.is(delegateEx)) {
return handler.apply(target, arguments);
}
});
}, 
Закрыто