我有一个名为Slicebox的滑块脚本,为了让我有两种不同尺寸的移动和桌面大小的图像,我需要在我的网站上有两个相同功能的副本。jQuery:我可以在变量中指定多个ID吗?
这是不方便,但我喜欢的滑块,所以我想看看我是否能更有效地使这项工作...
不是有两个,几乎是相同的,在我的页脚相同的脚本的副本...我只有3行不同,我想看看我是否可以合并它们。
下面是脚本:
<script type="text/javascript">
$(function() {
var Page = (function() {
var $navArrows = $("#nav-arrows-sm").hide(),
$navDots = $("#nav-dots-sm").hide(),
$nav = $navDots.children("span"),
$navFirst = $navDots.children("span:first-child"),
slicebox = $("#sb-slider-sm").slicebox({
onReady : function() {
$navArrows.show();
$navDots.show();
$navFirst.addClass("nav-dot-current");
},
onBeforeChange : function(pos) {
$nav.removeClass("nav-dot-current");
$nav.eq(pos).addClass("nav-dot-current");
},
colorHiddenSides : "#444",
autoplay : true,
interval: 7000,
easing : "ease",
disperseFactor : 30
}),
init = function() {
initEvents();
},
initEvents = function() {
$navArrows.children(":first").on("click", function() {
slicebox.next();
return false;
});
$navArrows.children(":last").on("click", function() {
slicebox.previous();
return false;
});
$nav.each(function(i) {
$(this).on("click", function(event) {
var $dot = $(this);
if(!slicebox.isActive()) {
$nav.removeClass("nav-dot-current");
$dot.addClass("nav-dot-current");
}
slicebox.jump(i + 1);
return false;
});
});
};
return { init : init };
})();
Page.init();
});
</script>
<script type="text/javascript">
$(function() {
var Page = (function() {
var $navArrows = $("#nav-arrows-lg").hide(),
$navDots = $("#nav-dots-lg").hide(),
$nav = $navDots.children("span"),
$navFirst = $navDots.children("span:first-child"),
slicebox = $("#sb-slider-lg").slicebox({
onReady : function() {
$navArrows.show();
$navDots.show();
$navFirst.addClass("nav-dot-current");
},
onBeforeChange : function(pos) {
$nav.removeClass("nav-dot-current");
$nav.eq(pos).addClass("nav-dot-current");
},
colorHiddenSides : "#444",
autoplay : true,
interval: 7000,
easing : "ease",
disperseFactor : 30
}),
init = function() {
initEvents();
},
initEvents = function() {
$navArrows.children(":first").on("click", function() {
slicebox.next();
return false;
});
$navArrows.children(":last").on("click", function() {
slicebox.previous();
return false;
});
$nav.each(function(i) {
$(this).on("click", function(event) {
var $dot = $(this);
if(!slicebox.isActive()) {
$nav.removeClass("nav-dot-current");
$dot.addClass("nav-dot-current");
}
slicebox.jump(i + 1);
return false;
});
});
};
return { init : init };
})();
Page.init();
});
</script>
在最上方有这个区块的代码:
var $navArrows = $("#nav-arrows-lg").hide(),
$navDots = $("#nav-dots-lg").hide(),
$nav = $navDots.children("span"),
$navFirst = $navDots.children("span:first-child"),
slicebox = $("#sb-slider-lg").slicebox({
有三个ID的:
#nav-arrows-lg
#nav-dots-lg
#nav-slider-lg
现在我有与-sm
相同,而不是-lg
,我想知道是否可以做类似这个:
var $navArrows = $("#nav-arrows-sm" + "#nav-arrows-lg").hide(),
$navDots = $("#nav-dots-sm" + "#nav-dots-lg").hide(),
$nav = $navDots.children("span"),
$navFirst = $navDots.children("span:first-child"),
slicebox = $("#sb-slider-sm" + "#sb-slider-lg").slicebox({
有没有办法让变量包含这两个ID的?
我只是试着这样做: 我不知道如何得到这个工作,它可能只是脚本编写方式 - 它可能不能够处理这个问题。我不确定。
var navArrowsList = "#nav-arrows-sm," + "#nav-arrows-lg";
var navDotsList = "#nav-dots-sm," + "#nav-dots-lg";
var navSliderList = "#sb-slider-sm," + "#sb-slider-lg";
var $navArrows = $(navArrowsList).hide(),
$navDots = $(navDotsList).hide(),
$nav = $navDots.children("span"),
$navFirst = $navDots.children("span:first-child"),
slicebox = $(navSliderList).slicebox({
的这一切都似乎是为我工作,我不出来,但我可以移动到更高效的滑块这比什么都重要CSS .. 。我真的想要做的是允许图像尺寸可以改变媒体宽度小于和超过40em(641px) – Matthew
你可以做一个简短的小提琴与相关的HTML和JavaScript,让我知道什么是问题 – Adil
当然!一秒=) – Matthew