我有一個名爲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