JQuery: как прикрепить событие к объектам шаблона? - PullRequest
1 голос
/ 12 апреля 2011

У меня есть шаблон, который генерирует изображения, и я привязываю его к div.

<script id="postTemplate" type="text/html">
<div class="post_1">
    <div class="postImage"><img src="${ImageUrl}" alt="Image"></div>
</div>
</script>

Затем я связываю данные

<script>
    $("#postTemplate").tmpl(clientData).appendTo("#imagesArea");
</script>

, теперь я хочу добавить событиеобработчики, которые я только что создал.что-то вроде

("template img").error(function() {});

Добавление обработчиков к таким вещам, как нажатие, похоже, работает, но ошибка срабатывает, прежде чем я могу добавить обработчик, кажется.

Ответы [ 6 ]

5 голосов
/ 12 апреля 2011

Не уверен, на что ссылается ваш селектор "template img", так как я не вижу никаких элементов шаблона.

$(function(){

    $('template img').live({
      click: function() {
        // do something on click
      },
      error: function() {
        // do something on error
      }
    });
});

http://api.jquery.com/live/

3 голосов
/ 20 февраля 2012
$("template").on("error", "img", function(){});
1 голос
/ 12 апреля 2011

Как насчет вызова

$("#postTemplate img").click(function() { alert('clicked'); });

после добавления шаблона.В противном случае вам придется использовать Live

0 голосов
/ 12 апреля 2011

Вы можете использовать .live (), который связывает события, даже если элемент создается впоследствии

$("#imagesArea img").live('click', function(){
   //do stuff here
});
0 голосов
/ 12 апреля 2011

попробуй

("template img").bind("error",function() {});
0 голосов
/ 12 апреля 2011

Я не уверен, что у меня возникла проблема, но я думаю, что вы можете сохранить ссылку на сгенерированный объект из шаблона, прежде чем добавить его к элементу #imagesArea. Присоединение событий к этой ссылке должно работать как:

var myGeneratedContent = $("#postTemplate").tmpl(clientData)
myGeneratedContent.appendTo('#imagesArea');
myGeneratedContent.click(function() { [...] });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...