gpt4 book ai didi

javascript - 对所有事件使用 jQuery .on()

转载 作者:数据小太阳 更新时间:2023-10-29 05:52:22 25 4
gpt4 key购买 nike

对每个事件使用 jQuery 的 .on() 事件处理程序是否被认为是不好的做法?

以前,我的代码包含这样的脚本:

$('#cartButton').click(function(){
openCart();
});

但是我最近开始使用 InstantClick (一个 pjax jQuery 插件)。

现在我的脚本都不起作用了。我明白为什么会这样,但我不能用 InstantClick.on('change', function(){ 标签包装我的代码,因为这意味着我的代码开始重复自己。例如,点击购物车按钮将多次运行 openCart() 函数。因此,为了解决这个问题,我将所有函数更改为如下所示:

$(document).on('click', '#cartButton', function(){
openCart();
});

我很好奇这是否会增加加载时间并导致过度紧张。对代码中的每个事件使用 on() 事件处理程序是否是一种不好的做法?

最佳答案

这根本不是坏习惯..

.on 是处理所有事件的首选方法,使用 .click 只是一个快捷方式,无论如何都会传递给 .on 方法。

如果您在这里查看(jquery 2.1.0 的未压缩源):https://code.jquery.com/jquery-2.1.0.js

这里有一些注意事项:

  1. 搜索这一行:on: function( types, selector, data, fn,/*INTERNAL*/one ) {

    这是 on 方法的函数定义,只是向您展示代码在做什么。

  2. 同时搜索这一行:jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick "

    此行下方的代码映射所有可直接调用的快捷方式(如单击),并向您展示它们只是映射到“on”方法。

希望这有帮助!!!

关于javascript - 对所有事件使用 jQuery .on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com