2014-03-29 3 views
0

У меня есть простая кнопка сброса, которая должна проверять переключатель. Удивление, что является лучшим подходом:Производительность за/против для trigger.click vs .prop ('checked', true)

$("#styleWidthWide").trigger('click'); 

или

$("#styleWidthWide").prop('checked', true); 

Большое спасибо за понимание.

+0

В вашем контексте, нажмите кнопку в нажатом положении кнопку радио будет переключать значение, когда опора («проверено», правда) будет установление истинного значения. В этом случае эти линии несравнимы. – andkorsh

ответ

0

Они совершенно разные, поэтому вопросы производительности являются спорными.

.trigger() будет эмулировать щелчок на элементе и вызывать обработчики JQuery на него или любого из его предков (если распространение не будет остановлено).

Учитывая ваш пример, вы переключаете значение, если только этот обработчик не отменяет его.


.prop() просто устанавливает свойство. В вашем примере вы устанавливаете значение true вместо переключения.

Если производительность действительно вызывает беспокойство, и все, что вам нужно, это установить свойство, а затем использовать собственные методы.

document.getElementById("styleWidthWide").checked = true; 

Это будет намного быстрее, чем решение jQuery. Однако это, вероятно, не будет заметной разницей. Все зависит от остальной части кода.

http://jsperf.com/trigger-vs-prop/2

+0

Очень тщательный, большое спасибо. –

+0

Добро пожаловать. –

1

Вы можете использовать JSPerf для такого рода испытаний: http://jsperf.com/trigger-vs-prop

На моем браузере (Firefox 28) версия trigger() составляет 95% медленнее, чем версия prop()

+0

Не знал о jsperf ... спасибо за то, что поделился таким важным и полезным ресурсом. –

+0

Нет проблем;) Я обнаружил его только через несколько месяцев, и я считаю его чрезвычайно полезным. – Biduleohm

Смежные вопросы