javascript - 使用 jQuery 的 $().on ('mouseenter' ,function(){}) 比 $().mouseenter(function(){}) 有优势吗?

标签 javascript jquery

我经常看到这样的代码:

$("#thing").on("mouseenter",function(){ Do stuff });

就个人而言,我几乎总是这样写:

$("#thing").mouseenter(function(){ Do stuff });

同样,我也经常写

$("#thing").click(function(){})

但我看到人们将其更正为(是的,我知道 on 在 v.1.7+ 中比 bind 更受欢迎,所以它本质上是相同的偏好问题):

$("#thing").bind("click",function(){}) 

我是不是做错了什么,这两个函数之间是否存在我没​​有看到的深层差异?它似乎总是按照我的意愿去做,所以这从来都不是一个实际问题,但我很想知道是否有我忽略的理论考虑。

最佳答案

不是真的,它只是快了一点,因为 mouseenter 函数调用 on(或者 trigger,如果不带参数调用),可以看到在源代码中:

jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
    "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
    "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {

    // Handle event binding
    jQuery.fn[ name ] = function( data, fn ) {
        return arguments.length > 0 ?
            this.on( name, null, data, fn ) :
            this.trigger( name );
    };
});

如您所见,对于许多事件来说也是如此。

就我个人而言,当我不需要on 的特殊功能时,我更喜欢使用mouseenter(或click 等)功能> :在我看来,使用 jQuery 的一大优势是它使代码不那么冗长且更具可读性。而且我认为你不应该被纠正,问问那些纠正你的人他为什么这样做。

关于javascript - 使用 jQuery 的 $().on ('mouseenter' ,function(){}) 比 $().mouseenter(function(){}) 有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086785/

相关文章:

javascript - 遍历 Javascript 对象搜索键值

jquery - CSS3 转换仅在 Firefox 中无法使用 Zepto/jQuery addClass() 触发

javascript - 向下滚动时替换 Logo 图像 JS/HTML/CSS wordpress 网站

javascript - 指定自定义搜索参数时,jqGrid 自定义 editfunc 不起作用

javascript - 如何通过按下 tab 按钮遍历 div 并显示其全部内容

javascript - for 循环中生成的警报太多

javascript - jQuery 图像预览 exif 旋转问题

php - 多个 jquery 倒数计时器不显示在 php 循环中

java - GWT 创建实用的 javascript 库

javascript - React 适合做多页面应用吗?