jquery事件委派live方法不能用

本文共有932个字,关键词:

问题:因为ajax新添加的元素需要绑定事件,使用click()、bind()、on()都需要写在ajax内,嵌套太多了,需要事件委派功能,但最新的jquery已经不能使用live()了
解决:使用jquery中另一个方法delegate方法(最新的jquery中degegate也弃用了,可以使用on事件替代)
方法:

    $('#upload_form').on('submit',function(){ var formData = new FormData($(this)[0]); $.ajax({ url: '/api/upload', type: 'post', data: formData, dataType: "json", async: false, cache: false, contentType: false, processData: false, success: function(data){ if(data.code=='err'){ alert(data.msg); }else if(data.code=='ok'){ alert("上传成功!"); var file_html = '
  • '+ data.result['oname'] +'
  • '; $('ul').append(file_html); }else{ } } }); return false; }); // 给li绑定click事件 // $('ul').delegate('li', 'click', function(){ //   var thisId = $(this).attr('id'); //   alert(thisId); // }); // 给li绑定click事件,替换上面的delegate方法 $('ul').on("click", "li", function(){  // 注意此处是先事件,后子元素 var thisId = $(this).attr('id'); alert(thisId); });
    版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
    添加新评论
    暂无评论