Определить щелчок по изображению - PullRequest
7 голосов
/ 05 февраля 2012

Я пытаюсь загружать изображения динамически и отображать их, как показано ниже

     var uploader = $('#<%=uploader.ClientId%>').plupload('getUploader');
              uploader.bind('FileUploaded', function (up, file, res) {
              $('#<%=thumbs.ClientId%>').append("<div id=" + file.id + ">
              <a href='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "'/>
              <img src='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "' width='70' height='55' data-full='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "'/></div>");
    });

Это моя разметка:

  <div id="thumbs" class="imgContain" runat="server">
  </div>

Если я делаю так на div, это дает мнепредупреждение, но не на изображении, а на div:

  $('.imgContain').click(function () {
    alert('You Clicked Me');
  });

И я пытался использовать этот способ, но это не дает мне никакого предупреждения, даже на div.

 $('.imgContain a').click(function () {
        alert('You Clicked Me');
 });

Так как мне это сделать?

Ответы [ 4 ]

11 голосов
/ 05 февраля 2012

вы должны использовать on метод

 $('.imgContain').on("click","a,img", function (e) {
      e.preventDefault();
      alert('You Clicked Me');
 });
4 голосов
/ 05 февраля 2012

Немного сложно точно знать, как выглядит ваша DOM, но я думаю, вы добавляете изображения в div с классом .imgContain. Если вы хотите добавить событие клика к этим изображениям, вы можете сделать что-то вроде этого:

$('.imgContain').on("click", "img", function () {
    alert('You Clicked Me');
});

Поскольку я полагаю, что вы добавляете изображения динамически, вы должны использовать метод .on() для привязки события щелчка вместо использования .click().

Примечание Если по какой-то причине вы используете предыдущую версию jQuery, вы можете изменить .on() на использование .live().

2 голосов
/ 05 февраля 2012

Для добавленных якорей <a> необходимо использовать .live(), чтобы прикрепить к нему событие щелчка, например:

 $('.imgContain a').live("click", function (event) {
      event.preventDefault();
      alert('You Clicked Me');
 });
0 голосов
/ 05 февраля 2012

Учиться функция жить в JQuery. и используйте это в своем коде ..

jQuery версии 1.4.1 и выше.

так как элементы размещаются в html динамически после загрузки вашей страницы. Функция щелчка не связана.

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