Я пытаюсь расширить элемент jquery с пользовательскими свойствами и функциями, чтобы я мог отслеживать мои элементы и получать их пользовательские свойства в любое время.jQuery объект плагин не является постоянным
на данный момент я сделал это:
jQuery.fn.designerElement = function (tpl, cls) {
this.__template = tpl
this.des__class = cls;
this.compile = function() {
this.html(this.__template(this));
return this;
}
return this;
};
var template = Handlebars.compile(
'<div id="' + +new Date() + '" class="{{des__class}}"></div>'
);
var el = $('<div></div>').designerElement(template, "form-container");
el.attr('id', "test");
el.compile();
$('body').append(el);
Теперь, если я называю $('#test').compile()
это сказать, говорит метод не определен.
Вот скрипку: http://jsfiddle.net/jmorvan/HLVj4/
Чтобы объяснить свой контекст, мне нужны методы и свойства, доступные непосредственно на объекте для некоторых DataBindings работать, вот почему я не могу использовать .data()
. Мне показалось, что jquery-плагин будет лучшим подходом, но я определенно чего-то не вижу.
Для того чтобы быть ясным, мне нужно будет иметь доступ к следующим объектам: $('#test').__template
, а также функции.
благодарит за ваше время!
благодарит за вас время @jazZRo! К сожалению, как я уже сказал в своем вопросе, '.data' не работает для меня, потому что у него есть функции getter ans setter для доступа к нему, и мои привязки (ember) нуждаются в полностью синтезированном свойстве. Я действительно прыгнул, что есть способ привязать свойства к самому элементу с помощью JQuery. похоже, что последующее решение придется делать. Я сделаю это! – Jmorvan
В JavaScript можно расширить функциональность элемента, используя его свойство прототипа. Я никогда этого не делал, поэтому не могу советовать об этом. Для меня тоже использование глобального массива или объекта JSON выглядит как способ. – jazZRo
Ваше второе решение, безусловно, лучшее, с чем я мог бы работать. Я попытался подключиться к элементу с помощью '$ (el) [0]', но кажется, что jQuery теряет ownPropertie на DOM-манипуляции. – Jmorvan