Преимущества / различия jQuery в .trigger () vs .click ()

Что касается производительности, каковы выгоды (или только различия) между:

$('.myEl').click(); 

а также

 $('.myEl').trigger('click'); 

Есть ли вообще?

4 Solutions collect form web for “Преимущества / различия jQuery в .trigger () vs .click ()”

Это код для метода click :

 jQuery.fn.click = function (data, fn) { if (fn == null) { fn = data; data = null; } return arguments.length > 0 ? this.on("click", null, data, fn) : this.trigger("click"); } 

как вы видете; если аргументы не передаются функции, это вызовет событие click.


Использование .trigger("click") вызовет одну меньшую функцию.

И как @Sandeep указал в своем ответе. .trigger("click") работает быстрее:


Начиная с 1.9.0 проверка data и fn была перенесена в .on функцию :

 $.fn.click = function (data, fn) { return arguments.length > 0 ? this.on("click", null, data, fn) : this.trigger("click"); } 

для вида производительности. Посмотрите здесь .. http://jsperf.com/trigger-vs-not-trigger Оба почти такие же … click () является сокращением триггера (‘click’).

я думаю что

 $('.myEl').trigger('click'); 

лучше, потому что он сохраняет вызов функции как $('.myEl').click(); просто вызывает это funciton. Посмотрите на код из источника jQuery

 jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { if ( fn == null ) { fn = data; data = null; } return arguments.length > 0 ? this.on( name, null, data, fn ) : //here they call trigger('click'); if you provide no arguments this.trigger( name ); }; if ( jQuery.attrFn ) { jQuery.attrFn[ name ] = true; } if ( rkeyEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; } if ( rmouseEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; } }); 

Проверьте http://api.jquery.com/click/ :

В третьем варианте, когда .click () вызывается без аргументов, это ярлык для .trigger («click»).

Кажется, они одинаковы.

  • Заголовок CORS 'Access-Control-Allow-Origin' отсутствует
  • Проверьте, установлен ли флажок с помощью jQuery
  • jQuery слайд слева и показать
  • управление сеткой для ASP.NET MVC?
  • Как выбрать конкретный параметр в элементе SELECT в jQuery?
  • jQuery UI DatePicker - Изменить формат даты
  • Что такое тип содержимого и тип данных в запросе AJAX?
  • В чем разница между этими функциями jQuery?
  • Вращение элемента анимации
  • Как разбирать данные JSON с помощью jQuery / JavaScript?
  • Каковы различия между обычным и тонким пакетом jquery?
  • Interesting Posts

    Лучшее программное обеспечение Intel Quick Sync для перекодирования h.264

    Java, Рассчитать количество дней между двумя датами

    Как убить процесс зомби на mac

    .htaccess переписать для перенаправления корневого URL в подкаталог

    Почему мне нужно переопределить методы equals и hashCode в Java?

    Беспроводная сеть перестает работать в XP до повторного подключения

    SQLite с защитой от шифрования / паролей

    Где эквивалент PowerPoint для нормального. Word?

    Доступ к внутреннему серверу с использованием внешнего ip

    Перевернуть оси x и y в графе Excel

    Определите, является ли устройство смартфоном или планшетом?

    Android: View.setID (int id) программно – как избежать конфликтов идентификаторов?

    Перспективы электронной почты отправляются, но сохраняются в черновиках (не то, что вы думаете)

    Могу ли я перенести свой диск C: на любой другой компьютер и успешно загрузиться?

    Android-создать JSON-массив и объект JSON

    Давайте будем гением компьютера.