При установке обработчика событий (отправляют, нажмите, нажатие клавиши, безотносительно), каков самый быстрый и самый эффективный способ получить данные к обработчику и использовать его в обработчике? Если я делаю что-то как:
$obj.data({name: value, ...});
$obj.click(function(e){
var $this = $(e.target),
name = $this.data(name);
});
Или это лучше, чтобы сделать что-то вроде этого:
$obj.bind('click', {name: value}, function(e) {
var $this = $(e.target),
name = e.data.name;
});
Есть ли другие соображения, которые я опускаю?
В любом случае, вы храните одни и те же данные в немного разных местах, хотя первый способ может быть менее расточительным, используя $. data()
без создания объекта jQuery, как здесь:
$obj.data({ name: value });
$obj.click(function(e) {
var name = $.data(this, 'name');
});
Лично я нахожу второй вариант намного чище, его эквивалентная версия также короче:
$obj.bind('click', {name: value}, function(e) {
var name = e.data.name;
});