2010-12-13 5 views
4
$('#id').bind('change',function() { 
     //do something 
    }).trigger('change'); 

он отлично работает. но если id2 сгенерирован с помощью AJAXJQuery: .live() и триггер() не работают вместе

я пытаюсь использовать

$('#id2').live('change',function() { 
    //do something 
}).trigger('change'); 

но не работает. Может кто-нибудь мне помочь. Благодаря

ответ

10

Если вы пишете

$('#id2').live('change',function() { 
    //do something 
}); 

, то вы делаете это потому, что #id2 является не создан. trigger('change') с другой стороны сразу вызывает событие. Но если элемент еще не существует, вызов его не имеет никакого эффекта.

Вам нужно позвонить trigger() раз создается элемент:

$('#id2').trigger('change'); 

Там нет необходимости использовать live() если #id2 уже существует. Вы можете просто использовать bind().

+0

# id2 еще не создан, поэтому мне нужно использовать live(). есть ли другое решение для запуска? – bee

+0

* «вы делаете это, потому что # id2 еще не создан» * Ну, вы можете использовать 'live', даже если этот элемент уже существует (в случае, если вы периодически заменяете его чем-то новым с тем же' id'). Но я ожидаю, что ** это * проблема OP, потому что она работает, если элемент уже существует: http://jsbin.com/ipohe4 –

+0

@Raj: Точка зрения Феликса: вы не можете вызывать * триггер * на элемент, который не существует. 'trigger' работает только с существующими элементами. –

0

Вы пытались вызвать событие изменения в функции ajax-complete?

Смежные вопросы