何时在jquery中使用on()和click()函数

25 浏览
0 Comments

何时在jquery中使用on()和click()函数

在jquery中,使用on()和click()有什么区别?

例如:两者的工作方式相同:

    $(".classname").click( function() {
       var toAdd = $('input[name=checkListItem]').val();
    });
    $(".classname").on("click", function () {
    var toAdd = $('input[name=checkListItem]').val();
    });

我应该在什么时候使用.on(),什么时候使用click()?如果两者相同,应该使用哪一个?

0
0 Comments

当在jQuery中使用.on()和.click()时,出现了以下问题:

问题的原因是.on()添加了一个具有定义名称的事件监听器。其中一些事件是预定义的,如click、onchange、onkeyup、onkeypress、onkeyrelease等。但是,如果存在原生事件,比如.click(),你应该使用它而不是.on("click")。

解决方法是:没有区别,这些事件只是预定义的,你应该使用原生函数来处理它们。

在我看来,你应该使用html属性。因为当你的代码变得越来越大时,在调试页面时更容易找到它。

0
0 Comments

在jQuery中,当需要绑定事件处理程序时,有两种常用的方法:使用.on().click()。这两种方法的语法是相同的,但是它们在使用事件委托语法时有所不同,事件委托语法只被.on()支持。

例如,使用.click()方法绑定事件处理程序的话,它只会注册到在代码执行时存在的元素上。如果之后添加了一个具有相同类名的新元素,那么点击该元素时处理程序将不会触发。

为了解决这个问题,可以使用事件委托。通过将处理程序注册到父元素上,并传递一个选择器作为第二个参数,当事件冒泡到父元素时,它会测试目标元素及其祖先元素是否满足选择器的条件,如果满足,则执行处理程序。

另外,.on()方法还支持多个事件,例如.on('keyup click doubleclick')可以同时绑定键盘弹起、点击和双击事件的处理程序。

当需要动态绑定事件处理程序,并且需要支持事件委托和多个事件时,应该使用.on()方法。而如果只需要简单地绑定点击事件处理程序,则可以使用.click()方法。

0