.live working,但是没有工作

时间:2013-05-27 08:53:27

标签: jquery html css

在我的代码中,当我用.live替换.on时,它不起作用?我无法确定问题。

$(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;
            });

            $(xml).promise().done(function () {
                console.log("image completed loading");
                $('img:lt(4)').removeClass('t2').addClass('t1');
                $('img:gt(3)').removeClass('t1').addClass('t2');
                $('img#id12').removeClass('t1').addClass('t2');
                $('img#id1').removeClass();


                //alert('Front Initial Text is'+imgFront[1]);
                window.setTimeout(function () {

                    $("#front").html(imgFront[1]);
                    $("#front").css("background", "gray");
                }, 1500);
            });
        }
    });
    $.getScript('js/code.photoswipe.jquery-3.0.5.js');
});

/*front div called when front or back is called */
$('#front').live('click', function (event) {
    event.stopPropagation();
    transitIt(this);
    //  alert('Front Clicked glob   e='+globe);
});


$('#myImageFlow img').on("click", function () {
    event.stopPropagation();
    alert('htmlcalled image Clicked Called=' + clickEnabled);
}); 

4 个答案:

答案 0 :(得分:1)

试试这个:

$('body').on('click', '#myImageFlow img', function() {
    // your code
});

参考文献:

  • .on() - jQuery API文档

答案 1 :(得分:1)

您的代表团可能没有正确定义:

$('#myImageFlow').on("click", 'img', function(event) {
    event.stopPropagation();
    alert('htmlcalled image Clicked Called=' + clickEnabled);
});

假设未从DOM中删除#myImageFlow,则它是事件委派的良好候选者。此外,您在点击处理程序中缺少event参数。

答案 2 :(得分:1)

试试这个 -

$('#myImageFlow').on("click", "img", function(event) 
{
    event.stopPropagation();
    alert('htmlcalled image Clicked Called='+clickEnabled);
});

$('html').on("click", "#myImageFlow img", function(event) 
{
    event.stopPropagation();
    alert('htmlcalled image Clicked Called='+clickEnabled);
});

答案 3 :(得分:0)

控制台窗口的任何输出?

注意到你缺少.on的(事件)。

除此之外,on函数使用冒泡来使其工作。因此,使用从一开始就存在的DOM树的一部分,并将您想要的dom树的子项放在括号中。

http://api.jquery.com/on/

  

委托事件方法仅将事件处理程序附加到一个元素tbody和&gt;事件只需要冒出一个级别(从点击的tr到tbody):

$("#dataTable tbody").on("click", "tr", function(event){
  alert($(this).text());
});