Установка данных в элемент с помощью jquery.tmpl

Я установил данные в элемент div и добавил их к другому элементу div, подобному этому,

var dt = { id: 0 };
$.template("temp", '<div id="div2" >${id}</div>');
$.tmpl("temp", dt).appendTo("#div1");

Он работает нормально. Я добавляю его в метод готовности документа.

Мое требование: это (div2) событие щелчка, которое мне нужно для доступа к dt.

Является ли это возможным?

Вопрос 2: я установил эти данные для множества элементов. Как получить эти элементы?

Заранее спасибо.


person Rajagopal 웃    schedule 22.03.2012    source источник
comment
Вы хотите получить доступ к переменной dt? Или это только один пример, и у вас будет много переменных, таких как dt?   -  person Simon Edström    schedule 22.03.2012
comment
да, это только один пример. я обновил свой вопрос намного глубже. Не могли бы вы посмотреть на это сейчас?   -  person Rajagopal 웃    schedule 22.03.2012


Ответы (1)


Вы можете использовать $.tmplItem:

var dt = { id: 222, text: 'My value id 222' };

$.template("temp", '<div class="innerDiv" >${id}</div>');
$.tmpl("temp", dt).appendTo("#div1");

$(document).on('click', '.innerDiv', function() {
    // gets the data item associated to the rendered template
    var dataItem = $.tmplItem(this);
    // dataItem.data holds the data itself
    alert(dataItem.data.text);
});
​

ДЕМО


Что касается второго вопроса, я не знаю, как легко получить список отрисовок определенного шаблона с помощью API.

Что вы можете сделать, так это добавить атрибут data- в разметку вашего шаблона, который позволит вам легко их извлекать:

$.template("temp", '<div id="div2" data-tmpl="temp">${id}</div>');

Затем вы можете выбрать все визуализации, у которых есть атрибут «data-tmpl» со ​​значением «temp»:

$('[data-tmpl="temp"]')

Я обновил демо таким образом.

Может быть, есть какой-то другой способ, но я знаком с шаблоном jQuery.

person Didier Ghys    schedule 22.03.2012
comment
Спасибо, не могли бы вы ответить на 2-й вопрос? - person Rajagopal 웃; 22.03.2012