【问题标题】:what is the difference between jQuery(function($) and $(function()?jQuery(function($) 和 $(function()) 有什么区别?
【发布时间】:2012-07-12 18:32:26
【问题描述】:

我正在查看一段我没有编写的代码,其中包含:

jQuery(function($) {

$('#interaction').find('.item').hover(function() {
    var $this = $(this);
    $this.addClass('hover');
},
function() {
    var $this = $(this);
    $this.removeClass('hover');
})
.click(function() {
    var $this = $(this);
    var thisID = $this.attr('id');
    //hide all visiable detail pages
    resetpage($('.item-detail:visible'));

... etc.

通常我会编写代码在 $(document).ready({ ... }); 内部运行例如:

$(document).ready({

    .click(function() {
        var $this = $(this);
        var thisID = $this.attr('id');
        //hide all visiable detail pages
        resetpage($('.item-detail:visible'));
        ... etc.

    }
});

这两种编写函数的方式有什么区别(如果有的话),或者我可以互换使用它们吗?

【问题讨论】:

标签: jquery function styles


【解决方案1】:

您可以互换使用它们。 $jQuery 的简写,$(function(){..})$(document).ready(function(){ }); 的简写

有时人们使用jQuery(function($){ }); 是因为$ 符号被另一个库使用,或者与服务器上的PHP 冲突。

【讨论】:

  • 谢谢。我问了我的老板,她告诉我,在这里编写代码时,我们需要使用 jQuery function($){...,因为公司网站使用的 jQuery 版本是由某个 3rd 方供应商编写的,那就是他们希望我们使用什么而不是 $(document).ready({... 但她无法再详细说明。
  • @SouthCoaster - 那么是的,这可能是最肯定的避免冲突。奇怪的是您使用的是由第三方供应商编辑的 jQuery 版本 - 通常任何进一步的添加/功能都应该只是插件。
  • 是的,我也这么认为,显然它也是一个非常旧的版本(我认为是 1.4.x 的自定义版本)。所以我刚刚实现的使用 CSS3 转换的新图像轮播中有一些代码显然不适用于旧版本,我们无法升级,所以我必须让它们包含/链接到当前版本和他们的旧版本一样好,因为他们不想只升级,因为这将需要广泛的站点范围的 QA 测试。跛脚...
  • @SouthCoaster - 尽量不要包含两个版本的 jQuery - 这可能会导致严重的头痛。我想您唯一的选择是使用与 1.4.x 兼容的更多插件。
  • 是的,最终决定我们只能使用与 1.4.1 兼容的代码(我们的自定义版本是从中创建的 jQuery 版本)。这意味着重新设计我刚刚实现的轮播以使用 .bind 而不是 .on 并使用 JQuery(function($){}); 在页面中调用脚本,但现在它似乎工作正常。
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 2015-03-08
  • 2012-02-18
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 2015-08-10
相关资源
最近更新 更多