jQuery .data по сравнению с eventData

При установке обработчика событий (отправляют, нажмите, нажатие клавиши, безотносительно), каков самый быстрый и самый эффективный способ получить данные к обработчику и использовать его в обработчике? Если я делаю что-то как:

$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;
});

Есть ли другие соображения, которые я опускаю?

11
задан pnuts 17 September 2015 в 16:10
поделиться

1 ответ

В любом случае, вы храните одни и те же данные в немного разных местах, хотя первый способ может быть менее расточительным, используя $. 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;
});
10
ответ дан 3 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: