我的代码是从外部脚本运行的,用于网站上每个页面的图像滑块。
$(document).ready(function() {
$("#slideshow").show();
$('#slider1').anythingSlider({
buildNavigation: false,
delay: 8000
})
在其中一个页面上,我不希望图像滑块自动旋转,因此我需要添加一个额外的变量。我已经在页面的主体上放了一个课程,并希望按照...的方式做一些事情。
如果正文有一个'partnerCharitiesDetail'类,则运行此脚本而不是通用脚本
这是我在下面尝试过的(没有成功)。我真的有两个问题,
1)当有两个相同的脚本运行时(如本例所示)jQuery会发生什么情况,是否会用较新的脚本覆盖较旧的脚本?
2)我哪里错了?!我的方法是最好的方法吗?
$(document).ready(function() {
$("#slideshow").show();
$('#slider1').anythingSlider({
buildNavigation: false,
delay: 8000
})
if ($('body.partnerCharitiesDetail').length > 0){
$('#slider1').anythingSlider({
buildNavigation: false,
delay: 8000,
startStopped: false
})
}
谢谢!
答案 0 :(得分:18)
使用hasClass()
方法检查元素是否具有某个类。
另外,你的代码有点重复(甚至可能导致AnythingSlider运行两次) - 我会这样写:
$(document).ready(function() {
// Initialize options first
var options = {
buildNavigation: false,
delay: 8000
};
// Only disable startStopped if the body has this class
if ($('body').hasClass('partnerCharitiesDetail')) {
options.startStopped = false;
}
// Show the #slideshow element and start the slideshow
$('#slideshow').show();
$('#slider1').anythingSlider(options);
});
答案 1 :(得分:4)
答案 2 :(得分:2)
if ($('body').hasClass('partnerCharitiesDetail')) {
...
我建议:
$("#slideshow").show();
var options = {
buildNavigation: false,
delay: 8000
};
if ($('body').hasClass('partnerCharitiesDetail')) {
options.startStopped = false;
}
$('#slider1').anythingSlider(options);
答案 3 :(得分:1)
行为取决于您使用的anythingSlider插件的工作原理。如果插件考虑重新初始化某个元素,那么第二个初始化将覆盖前一个,但更可能的是你真的搞乱你的DOM并使事件监听器加倍等。
正如所指出的,检查某些东西是否有类的正确方法是.hasClass(“classname”)。
if($("body").hasClass("partnerCharitiesDetail")) {
}
else {
}
虽然在这个具体案例中我只是做
$('#slider1').anythingSlider({
buildNavigation: false,
delay: 8000,
startStopped: !($("body").hasClass("partnerCharitiesDetail"))
})
并且可能为未来的探险家添加评论。
答案 4 :(得分:0)
试试这个
if($("body").isClass(".partnerCharitiesDetail")) { //code if body has specific class name } else { //code if body has no specific class name }