Использование $(this)
медленнее, чем использование this
напрямую, но не медленнее (в общем случае), чем повторное попадание в DOM с помощью $('.button')
внутри вашего обработчика.
Разница в ключах междуво-вторых, this
всегда будет одним элементом.$('.button')
может быть любым количеством элементов.То, что вы используете, зависит от того, что вы хотите скрыть.
Так что, если вы хотите работать с нажатой кнопкой только :
// Fastest if using DOM methods / properties
this.SOME_DOM_METHOD();
// Fastest if using some jQuery method that can take a DOM element
jQuery.method_that_takes_an_element(this, additional, args);
// Fastest if using a jQuery method that cannot take a DOM element
jQuery(this).SOME_JQUERY_METHOD();
Если вы хотите работать с всеми элементами с классом button
:
// Fastest if no new .button elements will be created
var buttons = $('.button');
buttons.click(function() {
buttons.hide();
});
// Slow but I think necessary if new .button elements will be created
$('.some_container').delegate('.button', 'click', function() {
$('.button').hide();
});