javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj

标签 javascript jquery

我正在自学,目前正在处理 jQuery 插件。

我发现了一个样板,用于遍历页面上的元素,将 $(this) 分配给全局变量“obj”。

var obj = $(this);

因此在我的函数中,我可以使用 $(obj).someFunc()obj.someFunc() 两者都有效,但老实说我不会真正理解有什么区别。

那么问题来了,这两种方法的性能差异/优势是什么,我应该使用哪种?

最佳答案

如果 obj 已经是一个 jQuery 对象,当你执行 var obj = $(this); 时就是这种情况,那么就没有必要将它传递给jQuery 再次

$(obj)$($(this)) 相同,显然是多余的。

看看jQuery's documentation [docs]还有助于理解您可以传递给 jQuery(别名 $)的内容:

  • jQuery( 选择器 [, context ] )
  • jQuery(元素)
  • jQuery(元素数组)
  • jQuery(对象)
  • jQuery(jQuery 对象)
  • jQuery()

您看到传递 jQuery 对象是完全有效的,但它会克隆传递的对象,这可能不是您想要做的。


但是,可能值得指出的是,一个 jQuery 插件方法中,this 已经是一个 jQuery 对象,所以您不需要也不必将它传递给 jQuery。

更多信息在这里:http://docs.jquery.com/Plugins/Authoring .

关于javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987883/

相关文章:

javascript - css animate fadeIn 在我的情况下不起作用

javascript - 提交时显示隐藏的 Div 但表单无效

javascript - 如何正确地将 CSS 文件包含到页面中

在选择框上选择时 Javascript 更改值

javascript - Backbone Model Fetch() 正在向 url 添加额外的参数

javascript - 找到和等于数字的所有子数组?

php - 如何将 MM/DD/YYYY 转换为 YYYY-MM-DD?

jQuery - 如何在调整屏幕大小时使拆分器位于中间

javascript - 他们是如何在 http ://artofflightmovie. com/中实现这些效果的?

javascript - 在自定义方法中使用 .element(element) 时 jQuery 验证失败