0

.on无法在我的页面上将点击事件应用于加载 ajax 的元素。#myimageflow是容器,我正在使用 ajax 加载图像。当我尝试 .on 进行单击时,它无法正常工作,而 .live 工作正常。

$(document).ready(function() {
    /*   Reading the data from XML file*/
    $.ajax({
        type: "GET",
        url: "photos.xml",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('item').each(function() {
                var path = $(this).attr('path');
                var width = $(this).attr('width');
                var height = $(this).attr('height');
                var id = $(this).attr('id');
                var alt = $(this).attr('alt');
                var longdesc = $(this).find('longdesc').text();
                var description = $(this).find('desc').text();
                $('#myImageFlow').append('<img src="' + path + '" id=' + id + '  height="' + height + '"  width="' + width + '" longdesc="' + longdesc + '" alt="' + alt + '"/>');
                imgArr[i] = description;
                imgFront[i] = longdesc;

                i = i + 1;

            });
        }
    });

    /* ===================================== */
    //$("#myImageFlow").show();
    $.getScript('js/iSlider.js');
    $.getScript('js/code.photoswipe.jquery-3.0.5.js');
});

/*front div called when front or back is called*/

$('#myImageFlow').on("click", 'img', function() {

    alert("image clicked");
});
4

3 回答 3

1

通过制作解决,

$(document).on('click', 'img', function() {
  alert('htmlcalled image Clicked Called='+clickEnabled);
         ......
            }
于 2013-05-27T12:14:23.110 回答
1

将此部分放在ready回调中:

$('#myImageFlow').on("click", 'img',  function() {
   alert("image clicked");     
});

#myImageFlow执行此绑定时必须找到该元素。当您将此代码放在ready回调之外时,它会在元素可用之前执行。

于 2013-05-27T12:06:50.573 回答
0

.live已弃用。如果您使用的是旧版本的 jQuery,.live()将为您服务。.on不管用

于 2013-05-27T12:06:29.160 回答