Мне трудно понять, как имитировать щелчок мыши с помощью JQuery. Может кто-нибудь, пожалуйста, сообщите мне, что я делаю неправильно.
HTML:
<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
JQuery:
jQuery('#foo').on('click', function(){
jQuery('#bar').trigger('click');
});
Демо: FIDDLE
когда я нажимаю на кнопку #foo, я хочу смоделировать щелчок на #bar, однако, когда я пытаюсь это сделать, ничего не происходит. Я тоже пытался, jQuery(document).ready(function(){...})
но безуспешно.
javascript
jquery
html
triggers
eventtrigger
lickmycode
источник
источник
jQuery trigger
работает только если добавлено событие jQuery click. В противном случае вы не сможете ничего сделать таким образом;Ответы:
Вам нужно использовать
jQuery('#bar')[0].click();
для имитации щелчка мышью фактический элемент DOM (не объект jQuery) вместо использования.trigger()
метода jQuery.Примечание: DOM Level 2
.click()
не работает с некоторыми элементами в Safari . Вам нужно будет использовать обходной путь.http://api.jquery.com/click/
источник
Вам просто нужно поместить небольшое событие тайм-аута, прежде чем делать
.click()
это так:источник
Это поведение JQuery. Я не уверен, почему это работает таким образом, он только запускает функцию onClick по ссылке.
Пытаться:
источник
trigger()
предназначен для выполнения JavaScript- части события click . Это очень похоже на создание,function var() {}
которое используется повторно несколько раз.Смотрите мое демо: http://jsfiddle.net/8AVau/1/
источник
this.click();
вelse if(this.click)
Может быть полезно:
Код, который вызывает триггер, должен идти после вызова события.
Например, у меня есть некоторый код, который я хочу выполнить при изменении значения #expense_tickets, а также при перезагрузке страницы
источник
trigger()
не работает. Оказывается, у меня был установлен код триггера выше функции, которую он вызывал - так что хук на самом деле не был на месте. Doh!jQuery
.trigger('click');
будет вызывать событие только для этого события, а также не будет запускать действие браузера по умолчанию.Вы можете симулировать ту же функциональность с помощью следующего JavaScript:
источник
Попробуйте это, что работает для меня:
источник
Я попробовал два верхних ответа, у меня не получилось, пока я не удалил «display: none» из элементов ввода моего файла. Затем я вернулся к .trigger (), он также работал в Safari для Windows.
Итак, вывод, не используйте дисплей: нет; чтобы скрыть ввод файла , вы можете использовать вместо этого opacity: 0.
источник
Технически это не ответ на этот вопрос, но хорошее использование принятого ответа ( https://stackoverflow.com/a/20928975/82028 ) для создания кнопок next и prev для вкладок в полях ACF jQuery:
источник
Просто используйте это:
источник
Вы не можете смоделировать событие клика с помощью JavaScript.
.trigger()
Функция jQuery запускает только событие с именем «click» для элемента, которое вы можете захватить с помощью.on()
метода jQuery.источник