jquery与javascript冲突
我在母版页中使用jquery,在内容页中使用javascript。单独使用Jquery时,它可以正常工作。但是当我将javascript(内容页)与jquery(母版页)一起使用时,母版页中的jquery就会停止工作 母版页脚本jquery与javascript冲突,javascript,jquery,Javascript,Jquery,我在母版页中使用jquery,在内容页中使用javascript。单独使用Jquery时,它可以正常工作。但是当我将javascript(内容页)与jquery(母版页)一起使用时,母版页中的jquery就会停止工作 母版页脚本 $(document).ready(function() { // set up the accordion $("#accordion>h3").click(function() { $(this).next("div").slideToggle(50
$(document).ready(function() {
// set up the accordion
$("#accordion>h3").click(function() {
$(this).next("div").slideToggle(500).siblings("div").slideUp(500);
});
// show active menu section
setTimeout('$("#accordion>div.activesec").slideToggle(800)', 100);
$('slideshow').style.display = 'none';
$('wrapper').style.display = 'block';
var slideshow = new TINY.slideshow("slideshow");
window.onload = function () {
slideshow.auto = true;
slideshow.speed = 5;
slideshow.link = "linkhover";
slideshow.info = "information";
slideshow.thumbs = "slider";
slideshow.left = "slideleft";
slideshow.right = "slideright";
slideshow.scrollSpeed = 4;
slideshow.spacing = 5;
slideshow.active = "#fff";
slideshow.init("slideshow", "image", "imgprev", "imgnext", "imglink");
}
}))
内容页脚本
$(document).ready(function() {
// set up the accordion
$("#accordion>h3").click(function() {
$(this).next("div").slideToggle(500).siblings("div").slideUp(500);
});
// show active menu section
setTimeout('$("#accordion>div.activesec").slideToggle(800)', 100);
$('slideshow').style.display = 'none';
$('wrapper').style.display = 'block';
var slideshow = new TINY.slideshow("slideshow");
window.onload = function () {
slideshow.auto = true;
slideshow.speed = 5;
slideshow.link = "linkhover";
slideshow.info = "information";
slideshow.thumbs = "slider";
slideshow.left = "slideleft";
slideshow.right = "slideright";
slideshow.scrollSpeed = 4;
slideshow.spacing = 5;
slideshow.active = "#fff";
slideshow.init("slideshow", "image", "imgprev", "imgnext", "imglink");
}
您的选择似乎缺少“#”或“.”,具体取决于您尝试访问id或类的天气
$('#slideshow').style.display = 'none';
$('#wrapper').style.display = 'block';
我相信冲突是由于您在内容页中使用了
$
速记造成的<代码>$用于表示jQuery。因此,jQuery试图解释$('slideshow').style.display
,这是无效的jQuery
用document.getElementById替换速记,或使用jQuery选择器
标准JS
document.getElementById.style.display = 'none';
或jQuery
$('slideshow').css('display', 'none');
您是否将您的平面javascript放入:
$(document).ready(function() {
});
如果是,那么尝试将它们放在它之外。最佳实践是将所有Javascript/Jquery代码放在一个.js文件中。然后在需要它的页面中导入这个.js 这样,您的HTML将是干净的,不会到处被javascript弄乱 我知道我并没有真正回答你的问题,但这样做可能有助于避免它
祝您好运您正在向
setTimeout
参数传递一个字符串。真糟糕
$('slideshow').style.display = 'none';
您试图用jQuery查找
标记,可能缺少类或ID选择器
另外,据我所知,
style
方法不是jQuery方法,所以您可能希望在JavaScript对象上调用它,而不是在jQuery对象上调用它?或者可能对其使用.css
方法?好的,因此看起来其他脚本使用$
,就像jQuery一样。您需要使用$.noConflict()
来防止命名空间冲突:
var $j = jQuery.noConflict();
$j(document).ready(function() {
// set up the accordion
$j("#accordion>h3").click(function() {
$j(this).next("div").slideToggle(500).siblings("div").slideUp(500);
});
// show active menu section
setTimeout('$j("#accordion>div.activesec").slideToggle(800)', 100);
如果不想在所有jQuery函数中使用$j
而不是$
,则可以将所有内容(内容页脚本除外!)包装到一个函数中,该函数将$
分配给jQuery:
(function( $ ){
// everything inside works normally with $
})( jQuery );
这是不对的。jQuery对象没有
.style
属性。这是内容页上的javascript是的,我单独放置了它们。但是冲突仍然发生。您是否检查了javascript控制台是否有错误?$(“#accordion>h3”)为null是consoleWell上的错误,这将有助于添加到问题中:)HTML中是否有带有h3
标记的#accordion
元素?是的,juhana。类似于test-1的东西列表项在这里而且,内容脚本看起来非常像原型。页面是否加载prototype.js?@sam,你知道它区分大小写,对吗document.getElementById('yourIdHere')
。还有,你说的还是原来的意思是什么?你犯了什么错误?对不起,詹姆斯,我使用了你提到的正确的案例$(“#accordion>h3”)为空是firefox控制台上的错误。我理解javascript$与jquery中的冲突,这就是为什么我得到空错误的原因。它起作用了。谢谢。我尝试直接使用jquery.conflict(),但没有成功,这将解决问题。祝你玩得愉快。。干杯