jQuery.триггер('Нажмите') не работает
кажется, что я просто не могу понять триггер jQuery ('click')
11 ответов:
вы должны использовать
jQuery('#bar')[0].click();
чтобы имитировать щелчок мыши на фактическом элементе DOM (не объект jQuery), вместо использования.trigger()
метод jQuery.Примечание: DOM Уровень 2
.click()
не работает некоторые элементы в Safari. Вам нужно будет использовать обходной путь.
это поведение JQuery. Я не уверен, почему это работает таким образом, он только запускает функцию onClick по ссылке.
попробуй:
jQuery(document).ready(function() { jQuery('#foo').on('click', function() { jQuery('#bar')[0].click(); }); });
вам просто нужно положить небольшое событие тайм-аута, прежде чем делать
.click()
вот так:setTimeout(function(){ $('#btn').click()}, 100);
смотрите мою демонстрацию:http://jsfiddle.net/8AVau/1/
jQuery(document).ready(function(){ jQuery('#foo').on('click', function(){ jQuery('#bar').simulateClick('click'); }); }); jQuery.fn.simulateClick = function() { return this.each(function() { if('createEvent' in document) { var doc = this.ownerDocument, evt = doc.createEvent('MouseEvents'); evt.initMouseEvent('click', true, true, doc.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); this.dispatchEvent(evt); } else { this.click(); // IE Boss! } }); }
может быть полезно:
код, который вызывает триггер должен перейти после мероприятие называется.
например, у меня есть код, который я хочу выполнить при изменении значения #expense_tickets, а также при перезагрузке страницы
$(function() { $("#expense_tickets").change(function() { // code that I want to be executed when #expense_tickets value is changed, and also, when page is reload }); // now we trigger the change event $("#expense_tickets").trigger("change"); })
jQuery
.trigger('click');
вызовет только событие для запуска этого события, оно также не вызовет действие браузера по умолчанию.вы можете имитировать ту же функциональность со следующим JavaScript:
jQuery('#foo').on('click', function(){ var bar = jQuery('#bar'); var href = bar.attr('href'); if(bar.attr("target") === "_blank") { window.open(href); }else{ window.location = href; } });
Я попробовал два лучших ответа, он не работал для меня, пока я не удалил "display:none" из моих элементов ввода файла. Затем я вернулся обратно .trigger () он также работал в safari для windows.
поэтому заключение не используйте display: none; чтобы скрыть ввод файла , вы можете использовать непрозрачность:0 вместо.
технически не ответ на это, но хорошее использование принятого ответа (https://stackoverflow.com/a/20928975/82028) для создания кнопок next и prev для вкладок в полях jQuery ACF:
$('.next').click(function () { $('#primary li.active').next().find('.acf-tab-button')[0].click(); }); $('.prev').click(function () { $('#primary li.active').prev().find('.acf-tab-button')[0].click(); });