на jQuery.триггер(‘Нажмите’) не работает
кажется, что я просто не могу понять триггер jQuery (‘click’)
11 ответов
вам нужно использовать jQuery(‘#bar’)[0].click(); для имитации щелчка мыши по фактическому элементу DOM (не объект jQuery), вместо использования .trigger() метод jQuery.
Примечание: DOM Уровень 2 .click() не работает некоторые элементы в Safari. Вам нужно будет использовать обходной путь.
это поведение JQuery. Я не уверен, почему он работает таким образом, он только запускает функцию onClick по ссылке.
вам просто нужно положить небольшое событие тайм-аута, прежде чем делать .click() вот так:
может быть полезно:
код, вызывающий триггер, должен идти после вызывается событие.
например, у меня есть код, который я хочу выполнить при изменении значения #expense_tickets, а также при перезагрузке страницы
в jQuery .trigger(‘click’); вызовет только событие для запуска этого события, оно также не вызовет действие браузера по умолчанию.
вы можете имитировать ту же функциональность со следующим JavaScript:
попробуйте это работает для меня:
Я попробовал два лучших ответа, это не сработало для меня, пока я не удалил «display:none» из моих элементов ввода файла. Затем я вернулся к прежней теме .trigger () также работал в safari для windows.
поэтому заключение не используйте display: none; чтобы скрыть ввод файла, вы можете использовать opacity:0 вместо этого.
технически не ответ на это, но хорошее использование принятого ответа (https://stackoverflow.com/a/20928975/82028) для создания кнопок next и prev для вкладок в полях jQuery ACF:
вы не можете имитировать событие click с помощью javascript. в jQuery .trigger() функция запускает только событие с именем «click» на элементе, который вы можете захватить с помощью .on() метод jQuery.
Источник
jQuery: триггер click() не работает?
почему нажав на trigger1 и trigger2 не стрелять нажмите на open ?
используя готов ( trigger3 ) тоже не работает:
6 ответов
важно уточнить, что делать jQuery(‘#open’).click() не выполняет атрибут href тега привязки, поэтому вы не будете перенаправлены. Он выполняет onclick событие #open которых не определен.
вы можете выполнить перенаправление и возможность вызвать его с помощью оригинального jQuery(‘#open’).click() код, давая #open событие click:
из того, как выглядит ваш код, вы хотите, когда пользователь нажимает на ссылку один или два (триггер 1 или 2) вы хотите ссылку в open следовать?
если это так, .click() на самом деле это не та функция, которую вы хотите, на самом деле jQuery, похоже, не предлагает метод прямого нажатия на элемент привязки. Что он будет делать, это вызвать любое событие, которое прикреплено к элементу.
взгляните на это пример:
таким образом, есть событие, прикрепленное к элементу с идентификатором open это просто предупреждает, чтобы сказать, что он был нажат. Нажатие на ссылку триггера просто запускает событие click на элементе с идентификатором open . Так что это не будет делать то, что вы хотите! он будет запускать любые события, но на самом деле он не будет следовать по ссылке
я удалил 2-й триггер, потому что .click() это просто прокси для .trigger(‘click’) так они делают то же самое!
таким образом, чтобы вызвать фактический щелчок по якорю, вам придется сделать немного больше работы. Чтобы сделать это немного более повторно, я бы изменил ваш HTML немного (я объясню почему через минуту):
в основном любая ссылка, по которой вы хотите следовать другому элементу, добавляет class=»trigger» to, таким образом, он повторно используется. В элементе, который вы добавили class to, добавить rel=»#element-to-be-clicked» это позволит вам настроить несколько кликов по разным ссылкам.
- таким образом, теперь вы захватываете любые клики по элементу с помощью class=»trigger»
- Поиск элемент, на который вы хотели нажать rel=»#element-to-be-clicked»
- получение href адрес из элемента
- изменение местоположения windows на новую ссылку
попробовать с удалением onclick=»jQuery(‘#open’).click();»
также попробуйте положить $(‘#trigger1’) вы используете jQuery(‘#trigger3’)
вы связываете событие click до #trigger3 два раза. удалите один из них
jQuery (‘#open’).html (‘to be fired’); изменит его на просто текст. Вот почему 2nd select не работает.
существует 3 типа ссылок в зависимости от href содержание :
1) — это URL-адрес
2) The href это вызов javascript, такой как»javascript:»
3) The href бесполезно ( » # «, » javascript:void(0)». ), функция непосредственно связана по ссылке
вот почему я делаю этот маленький плагин для вызова метода :
чтобы вызвать его, просто используйте $(‘DOMelement’).triggerClick() .
Надеюсь, это поможет. (Этот плагин является прототипом. Спасибо скажите мне, если есть какие-то ошибки. )
Источник
jQuery.триггер (‘click’) не работает
Кажется, что я просто не могу правильно понять функцию jQuery trigger(‘click’).
Может кто-нибудь, пожалуйста, скажите мне, почему этот простой код не работает и как исправить?
Что я хочу, чтобы иметь возможность нажать на #foo (который работает хорошо) и имитируя нажмите на #bar (который полностью игнорируется без каких-либо сообщений об ошибках).
Пробовал также со jQuery(document).ready(function()<. >) своим, но безуспешно.
10 ответов
jQuery .trigger(‘click’); будет вызывать только событие для запуска на этом событии, он не будет вызывать действие браузера по умолчанию, а также.
Вы можете смоделировать ту же функциональность с помощью следующего JavaScript:
Это поведение JQuery. Я не уверен, почему он работает таким образом, он только запускает функцию onClick по ссылке.
Нельзя имитировать событие click с помощью javascript.
.trigger() функция jQuery только запускает событие с именем «click» на элементе, который можно захватить с .on() помощью метода jQuery.
Примечание: DOM Level 2 .click() не работает на некоторых элементах в Safari . Вам нужно будет использовать обходной путь.
Может быть полезным:
Код, вызывающий триггер, должен перейти после вызова события.
Например, у меня есть код, который я хочу выполнить при изменении значения #expense_tickets, а также при перезагрузке страницы
Я попробовал два первых ответа, он не работал для меня, пока я не удалил «display:none» из моих элементов ввода файла.
Затем я вернулся обратно .trigger () также работал в safari для windows.
Вывод: не используйте display:none; чтобы скрыть ввод файла , можно использовать opacity: 0.
Источник
JQuery: trigger click() не работает?
Почему нажатие на trigger1 и trigger2 не срабатывает при нажатии open ?
Использование ready ( trigger3 ) тоже не работает:
Важно уточнить, что выполнение jQuery(‘#open’).click() не выполняет атрибут href тега привязки, поэтому вы не будете перенаправлены. Он выполняет событие onclick для #open , которое не определено.
Вы можете выполнить перенаправление и возможность вызвать его с исходным кодом jQuery(‘#open’).click() , указав #open событие click:
Как выглядит ваш код, вы хотите, когда пользователь нажимает на ссылку один или два (триггер 1 или 2), для которого требуется ссылка в open ?
Если это так, .click() на самом деле не функция, которую вы хотите, на самом деле jQuery, похоже, не предлагает метод прямого нажатия на элемент привязки. Что он будет делать, это вызвать любое событие, прикрепленное к элементу.
Взгляните на этот пример:
Таким образом, есть элемент, прикрепленный к элементу с идентификатором open , который просто предупреждает, что он был нажат. Нажатие на ссылку триггера просто вызывает событие щелчка на элементе с идентификатором open . Так что это не будет делать то, что вы хотите! Он будет запускать любые события, но фактически не будет следовать ссылке
Я удалил второй триггер, потому что .click() является просто прокси для .trigger(‘click’) , поэтому они делают то же самое!
Чтобы вызвать фактический щелчок на якоре, вам нужно будет немного поработать. Чтобы сделать это несколько более многократно, я немного поменяю свой HTML (я объясню, почему в одно мгновение):
В принципе, любая ссылка, которую вы хотите использовать за другим элементом, добавляет class=»trigger» , таким образом, она повторно используется. В элементе, который вы добавили class to, добавьте rel=»#element-to-be-clicked» , это позволит вам настроить несколько кликов по различным ссылкам.
- Итак, теперь вы захватываете клики по элементу с помощью class=»trigger»
Поиск элемента, на который вы хотите нажать rel=»#element-to-be-clicked»
Получение адреса href из элемента
Изменение местоположения окон на новую ссылку
Источник
How to get JQuery.trigger(‘click’); to initiate a mouse click
I’m having a hard time understand how to simulate a mouse click using JQuery. Can someone please inform me as to what i’m doing wrong.
when I click on button #foo I want to simulate a click on #bar however when I attempt this, nothing happens. I also tried jQuery(document).ready(function()<. >) but without success.
11 Answers 11
You need to use jQuery(‘#bar’)[0].click(); to simulate a mouse click on the actual DOM element (not the jQuery object), instead of using the .trigger() jQuery method.
Note: DOM Level 2 .click() doesn’t work on some elements in Safari. You will need to use a workaround.
You just need to put a small timeout event before doing .click() like this :
This is JQuery behavior. I’m not sure why it works this way, it only triggers the onClick function on the link.
The code that calls the Trigger should go after the event is called.
For example, I have some code that I want to be executed when #expense_tickets value is changed, and also, when page is reload
jQuery’s .trigger(‘click’); will only cause an event to trigger on this event, it will not trigger the default browser action as well.
You can simulate the same functionality with the following JavaScript:
Try this that works for me:
Technically not an answer to this, but a good use of the accepted answer (https://stackoverflow.com/a/20928975/82028) to create next and prev buttons for the tabs on jQuery ACF fields:
I have tried top two answers, it doesn’t worked for me until I removed «display:none» from my file input elements. Then I reverted back to .trigger() it also worked at safari for windows.
So conclusion, Don’t use display:none; to hide your file input , you may use opacity:0 instead.
You can’t simulate a click event with javascript. jQuery .trigger() function only fires an event named «click» on the element, which you can capture with .on() jQuery method.
Источник