在普通javascript函数中使用jQuery语句
在ready之外的普通javascript函数中使用jQuery语句是好还是坏的做法?如果不是,正确的方法是什么在普通javascript函数中使用jQuery语句,javascript,jquery,Javascript,Jquery,在ready之外的普通javascript函数中使用jQuery语句是好还是坏的做法?如果不是,正确的方法是什么 //** End ready **// function doSomething() { selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).attr('value') ); // Javascript code } 为什么不这样做可以减少代码行,而且jquery与所有浏览器都兼容
//** End ready **//
function doSomething() {
selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).attr('value') );
// Javascript code
}
为什么不这样做可以减少代码行,而且jquery与所有浏览器都兼容呢。当您包含jquery文件时,您正在扩展您的功能,可以在任何地方自由使用,这是完全可以接受的;只要确保在加载DOM后调用这些函数,无论是从document ready还是其他类似的函数。这一点都没有错 您需要确保的是,在DOMReady之前没有对DOM节点进行任何引用。无论是使用
$('.someClass')
还是document.getElementsByClassName
,这都是正确的
您的函数确实进行了这样的引用,但只要在DOMReady之前没有调用函数本身,就可以了。没有理由不在document.ready之外使用它。它使遍历和修改dom变得更加容易
通过许多有用的jquery选择器获取页面上的元素的能力是在其他地方使用它的充分理由。这没有什么错。jQuery只是一个Javascript库,它们之间没有严格的分离 您可能希望使用函数
val
,但是:
function doSomething() {
selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).val() );
// Javascript code
}
只要函数doSomething()是在onLoad事件之后触发的,就完全可以这样做$(文档)。ready只是一种将JS执行推迟到页面完全加载的方式。是的,当然是。你可以在任何你想要和需要的地方使用jQuery函数。据我所知,jQuery是javascript的一个有效的速记替代品,可以引入不引人注目的脚本。。因此,我不推荐将jQuery与javascript结合使用,因为这会破坏jQuery的目的,而且当多人混合使用js和jQuery时,代码的模块化和一致性也会受到影响,这使得查看变得非常困难at@optimusprime619jQuery不是JavaScript的替代品——它是JavaScript。事实上,不使用JavaScript就不可能使用jQuery。@JamesPoulson注意,要获取元素的值,您可能应该使用
.val()
,而不是.attr(“value”)
…@Pointy我在使用“实现”的上下文中使用了world替代方法(是的),我知道它实际上是javascript。实际上,您可以在准备好之前调用它,只需确保它是在您希望脚本处理的特定元素被解析之后调用的。jQuery不会扩展功能。jQuery没有任何东西是不能没有它的。它只是使现有的功能更容易实现。@ElliotBonneville:有时。