2013-07-16 3 views
4

Я пытаюсь присвоить функцию свойству на кучу элементов с помощью .prop()Используя .prop метод JQuery, чтобы установить свойство функции

$('.whatever').prop({MyProp:MyFunc}); 

Всматриваясь в документации для этой функции, кажется, есть особое поведение, когда значение является функцией, а для свойства НЕ будет назначена функция, а функция возвращает значение.

Есть простой обходной путь для этого, или я должен просто использовать

$('.whatever').each(function(id, item){item.MyProp=MyFunc;}); 
+0

Почему вы хотите назначить функцию свойству DOM? Для свойств обработчика событий есть лучшие альтернативы. – Bergi

+0

Моя функция не обработчик события, а метод. Он призван делать что-то не потому, что что-то случилось – DJL

+0

Но что он делает в DOM, тогда? Поместите его в другое место. – Bergi

ответ

0

.prop() не для такой цели. Вот почему у вас есть метод .data().

$('.whatever').data('MyFunc', MyFunc); 

// somewhere else: 
var MyFunc = $('.whatever').data('MyFunc'); 
MyFunc(args); 
+0

К сожалению, это означает, что код вызова должен также использовать метод .data. В то время как использование имущества не имеет таких требований item.MyProp(); – DJL

+0

Не прикрепляйте элементы к элементам DOM. В зависимости от вашего имени свойства это может повлиять на функциональность вашего элемента. – gustavohenke