У меня есть простая кнопка сброса, которая должна проверять переключатель. Интересно, какой из них лучше всего подходит:
$("#styleWidthWide").trigger('click');
или
$("#styleWidthWide").prop('checked', true);
Большое спасибо за понимание.
Они совершенно разные, поэтому вопросы производительности спорны.
.trigger()
будет эмулировать щелчок по элементу и вызывать любые обработчики jQuery на нем или любого из его предков (если только распространение не прекращено).
Учитывая ваш пример, вы переключаете значение, если нет обработчика, который его переопределяет.
.prop()
просто устанавливает свойство. В вашем примере вы устанавливаете значение true
вместо переключения.
Если производительность действительно вызывает беспокойство, и все, что вам нужно, это установить свойство, а затем использовать собственные методы.
document.getElementById("styleWidthWide").checked = true;
Это будет намного быстрее, чем решение jQuery. Однако это, вероятно, не будет заметной разницей. Все зависит от остальной части кода.
Вы можете использовать jsperf для такого теста: http://jsperf.com/trigger-vs-prop
В моем браузере (Firefox 28) версия trigger()
95% медленнее версии prop()