2015-06-02 4 views
3

Я использовал trigger() для проверки переключателя после загрузки всего содержимого страницы, поскольку значение переключателя поступает от стороннего api.JQuery: trigger() не вызывает связанный объект

У меня есть один вариант по умолчанию. Поэтому я использовал trigger() событие для проверки переключателя. У переключателя есть также событие click.

В моем коде выбирается только переключатель, но событие не срабатывает. мой код ...

jQuery(document).ready(function($) { 
    jQuery("#btn_03").attr('checked', 'checked'); 

    jQuery("#btn_03").trigger("change"); 

    jQuery(".class input[type='radio']").live("change", function($) { 
     alert("clicked"); 
    }); 
}); 
+0

укажите свой HTML код – prashant

+1

вам необходимо создать событие изменения с помощью '# btn_03'. то он будет работать –

ответ

3

Вам нужно вызвать событие после прикрепления обработчика событий:

jQuery(".class input[type='radio']").on("change", function(e) { 
    alert("clicked"); 
}); 

jQuery("#btn_03").prop('checked', true).trigger("change"); 

Также используйте $.fn.on вместо давно устаревшего $.fn.live. И лучше установить свойство checked вместо атрибута.

5

Перед началом события необходимо назначить обработчик события.

Когда вы фактически запускаете событие, вы все равно не подключили ни одного слушателя к этому событию. Вы делаете это в следующей строке. Таким образом, событие change действительно срабатывает, но на этом событии ничего не происходит.

Вы можете сделать это таким образом

jQuery(document).ready(function($) { 
    jQuery("#btn_03").attr('checked', 'checked'); 

    jQuery(".class input[type='radio']").on("change", function($) { 
     alert("clicked"); 
    }); 

    jQuery("#btn_03").trigger("change"); 
}); 

использовать также «на», чтобы связать события вместо «вживую» в соответствии с последней документации JQuery

2

Вам необходимо подключить событие изменения перед вами на самом деле вызовите событие изменения. Я включил скрипт запрошенной вами функции.

Я изменил цель изменения события, чтобы быть фактическим радиовходом, так как у меня не было вашего html, но обычно вы, скорее всего, захотите использовать имя группы радио, чтобы связать событие, поскольку эти обычно связаны с одним поведением - например, $("input[name='radioName']").change(function(){ // Change event code });

Sidenote: вы можете использовать '$' вместо 'jQuery', чтобы начать выражение.

http://jsfiddle.net/du58fo3t/

$(document).ready(function() { 

    $("#btn_03").attr('checked', true); // Check radio button 

    // Hook change event on radio button 
    $("#btn_03").change(function() { 
    alert("clicked"); 
    }); 

    // Trigger change on radio button 
    $("#btn_03").trigger("change"); 
}); 
Смежные вопросы