一个jQuery最佳实践问题.
我正在编写一个非常jQuery密集的网页.我是jQuery的新手并且注意到它的强大功能,但是当我带来了大量的javascript经验和知识时,我的问题是:在jQuery中应该做些什么以及在简单的javascript中做什么.
例如,有一些回调将普通的DOM对象作为参数发送.我应该使用它还是应该包装它(如$(this)).
如果我这样做是否重要.x = y或$(this).attr(“x”,y).
解决方法
如果您的函数接收到DOM对象,并且您不需要该DOM对象的任何jQuery功能,则无需将其转换为jQuery对象.例如,如果您收到一个checkBox对象,则可以在不使用jQuery的情况下检查checked属性.
但是,如果您需要导航到该复选框中的其他元素,则转换它可能是值得的:
function yourCallback(cb) { cb = $(cb); var sel = $(cb).closest('td').next().find('select'); // For example,update the options in a neighboring select field ... }
jQuery(和其他库一样)与原生JS平滑地融合在一起.如果您需要额外的功能,请扩充相关对象.
至于你的上一个问题:你可能会发现数据函数对于避免非标准DOM属性很有用.如果您的问题中的属性x实际上是一个有效的DOM属性,您可以编写this.x = y或$(this).attr(‘x’,y),IMO并不重要.但是,如果x不是DOM属性,请使用
$(this).data('key',value)
这样,您可以使用DOM元素存储任意键值对,其中value可以是任意原始值或对象.