jQuery中on与click的区别

来源:互联网 发布:深入浅出java pdf下载 编辑:程序博客网 时间:2024/05/17 23:36

一直搞不清楚jquery中 onclick 的区别,今天看到一篇文章写得很好下面根据一个实例就能很好的理解了!

html部分

 <div>     <h1>展示jQuery中on()和click()的区别</h1> </div><div>    <span>点击生成新按钮。NewOn生成的Delete按钮行为用on()实现,NewClick生成的Delete按钮行为用click()实现。</span></div><div class="test">   <button class="new" id="newon">NewOn</button>    <button class="new" id="newclick">NewClick</button>   <ul class="li">        <li>原先的HTML元素on<button class="deleteon">Delete</button></li>        <li>原先的HTML元素click<button  class="deleteclick">Delete</button></li>    </ul> </div>

js部分

<script>       $(function(){            $("#newclick").click(function(){                 $(".li").append('<li>动态添加的HTML元素click<button class="deleteclick">Delete</button></li>');             });            $("#newon").click(function(){                 $(".li").append('<li>动态添加的HTML元素on<button class="deleteon">Delete</button></li>');             });            $(".li").on('click', ".deleteon", function(){                $(this).parent().remove();             })            $(".deleteclick").click(function(){                 $(this).parent().remove();             })            //方法2:            $(".li").click(function(ev){               var ev = ev || window.event;             var target = ev.target || ev.srcElement;               $(target).parent().remove();            })       })</script>

效果图

这里写图片描述

  • 现象
    原先的HTML元素点击其身后的Delete按钮就会被删除。而动态添加的HTML元素,使用click()这种写法,点击Delete按钮无法删除;使用On()方式可以。

  • 原因
    element.click()这种写法不支持给动态元素或样式绑定事件。支持给动态元素绑定事件的是.live()和.on()。live在jQquery1.7后就不推荐使用了。使用.on()时注意,on前面的元素必须在页面加载的时候就存在DOM里面。

原创粉丝点击