Подтвердить что ты не робот

Событие смены триггера jQuery на флажке

Возможно ли инициировать событие изменения в флажке с помощью javascript/jquery?

Что-то вроде этого (я запускаю triggerChange нажатием кнопки):

<label><input type="checkbox" id="chk"/>Label for chk</label>

<script>
function triggerChange(){
    $("#chk").trigger("change");
}
</script>

Когда я запускаю вышеуказанный код, я получаю эту ошибку: " триггер не является функцией".

4b9b3361

Ответ 1

Это сообщение об ошибке trigger is not a function указывает на что-то еще в игре. Согласно этому такому вопросу:

Что происходит, когда селектор jQuery не был найден?

no.good.at.coding говорит:

Однако обратите внимание, что вы должны убедиться, что селектор является объектом jQuery! В противном случае вы можете получить ошибку, указывающую, что "триггер не функция".

Вполне вероятно, что вы забыли JQuery?


Что касается вашей реализации, у вас должно быть все в порядке, как вы ее используете. Но trigger должен использоваться для запуска методов событий для элементов, которые уже были присоединены через jQuery. Посмотрите мою демонстрацию:

Fiddle:
С событием клика: http://jsfiddle.net/fS4R5/1/
Без события клика: http://jsfiddle.net/fS4R5/2/

HTML:

<label><input type="checkbox" id="chk"/>Label for chk</label>

JS:

function triggerChange(){
    $("#chk").trigger("change");
}

$("#chk").change(function() {
   alert("triggered!"); 
});

triggerChange();

Ответ 2

В jQuery вы обычно можете инициировать событие, вызывая его метод eventhandler с любыми параметрами функции.

Например, обработчик кликов может быть назначен как таковой:

$('#mything').click(function(e){dostuff});

событие click само по себе может быть запущено простым запуском: $('#mything').click();

Я подозреваю, что это можно сделать для каждого существующего события в jQuery.

Ответ 3

Я думаю, что предпочтительный метод с 1.9.1 равен 'on'. Особенно если вы используете динамически добавленные флажки.

Скажем, у вас есть div с id = 'divCOntent', и на нем есть флажок с id = 'cballaut', вы можете сделать это

$('#divcontent').on('click', '#cballaut', function (e) {
                    alert(this.checked);
                });

Ответ 4

использовать метод prop.

$('#myCheck').prop('checked', true);
$('#myCheck').prop('checked', false);

Ответ 5

Убедитесь, что установлен флажок "Ввод типа", в случае отключения триггер не будет запускать событие

//fire event 
$('#ceckBoxId').click();
$('#ceckBoxId').trigger('click');

или поменяйте флажок checked val

$('#ceckBoxId').prop('checked', true);
$('#ceckBoxId').prop('checked', false);