jQuery-原型冲突
我正在使用prototype和script.aculo.us的组合在我的asp.net页面中实现lightbox效果。我的页面中也包含了jquery。我的页面中有几个DIV标记,但在页面头部包含了prototype文件后,我无法使用jquery读取javascript中的DIVjQuery-原型冲突,jquery,prototypejs,conflict,Jquery,Prototypejs,Conflict,我正在使用prototype和script.aculo.us的组合在我的asp.net页面中实现lightbox效果。我的页面中也包含了jquery。我的页面中有几个DIV标记,但在页面头部包含了prototype文件后,我无法使用jquery读取javascript中的DIV var div = $("#divLeftSideModelsList"); alert(div) 告诉我一个错误,对象为空 但是 他给了我目标 这是因为jQuery和其他框架之间存在一些冲突吗 请注意此代码是否有效
var div = $("#divLeftSideModelsList");
alert(div)
告诉我一个错误,对象为空
但是
他给了我目标
这是因为jQuery和其他框架之间存在一些冲突吗
请注意此代码是否有效:
var div = jQuery("#divLeftSideModelsList");
alert(div);
读一读:
这是一个很好的例子:
重写$-函数
但是,在jQuery和另一个库都已加载之后,您可以随时调用jQuery.noConflict来覆盖该默认值。例如:
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>
这会将$还原回其原始库。您仍然可以在应用程序的其余部分使用jQuery
此外,还有另一种选择。如果希望确保jQuery不会与另一个库冲突,但希望使用短名称,可以执行以下操作:
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>
您应该在中使用jQuery。然后使用jQuery而不是$。奇怪的bug。无论如何,prototype和jQuery都重新定义了全局变量$ 请阅读了解jQuery如何与其他库配合使用
它基本上是说,调用jQuery.noConflict会将$variable单独留给其他LIB使用您解决了这个问题吗?您是否需要进一步的帮助,或者您是否可以将问题标记为已回答?
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>