命令jQuery 1.8.2不像live命令那样工作

时间:2014-07-18 05:07:29

标签: javascript jquery

现在我只是将我的jQuery库升级到1.8.2并改变如下代码。

$(document).on('change','#frmLocations #cboSearch',function(event){ });

但是当我动态添加一些像#34; table"使用点击事件,更改发明它无法正常工作。但是,当我把"生活"命令,它正常工作。所以请帮我替换" live"命令来自" ON"命令。
实际上现在我对此感到厌倦。

请检查此链接,当我点击第一个和第二个文本框时,警报应该是"第三个", 但没有工作。 http://jsfiddle.net/6TcPA/4/

  $(function(){
    $('div').append(
        '<input  id="first"/><input id="second"/>'
    );

    $(document).on('click','#first',function(event){
        $('#second').attr('id','third');
    });

    $(document).on('click','#second',function(event){
        alert("second");
    });

    $(document).on('click','#third',function(event){
        alert("third");
    });

    $(document).on('click','#third',function(event){
        alert("third");
    });
});

现在会出现2个警报(&#34;第三个&#34;)。

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

$(document).on('click','#first,#second',function(event){
        alert("sdfdsf");
    });

而不是:

$(document).on('click','#first #second',function(event){ //wrong id should be comma seprated
        alert("sdfdsf");
    }); 

<强> Working DEMO

注意:如果动态内容为select box,则可以使用更改event,如果input,则可以使用keyup事件。如果我能看到你的标记,那么就能给出更具体的答案。

答案 1 :(得分:0)

您应该使用逗号分隔单独ID的事件。使用以下

根据OP的要求和新fiddle

进行更新
$(function(){
    $('div').append(
        '<input id="first"/><input id="second"/>'
    );

    $('#first').on('click',function(){
       $('#second').attr('id','third');

    });

    $('#second').bind('click',function(){
        alert("third");
    });

});    

或者你也可以这样做Fiddle

$(function(){
    $('div').append(
        '<input id="first"/><input id="second"/>'
    );

    $('#first').on('click',function(){
       $('#second').attr('id','third');

        $('#third').bind('click',function(){
            alert("third");
        });

    });            
});    
老一:

$(document).on('change','#frmLocations , #cboSearch',function(event){
});

您可以查看herehere的工作情况。