2012-05-17 109 views
-1

我有一些JavaScript與插件一起工作,以便靜態文本鏈接對應於jQuery滑塊中的特定幻燈片。它看起來像這樣:Javascript通配符?

$("a.gibbs").click(function(){ 
    $('#anyslider').anythingSlider('.gibbs'); 
    }); 
}); 

所以基本上,帶班.gibbs任何鏈接將滑塊移動到帶班.gibbs李。

我想知道的是,由於我有近50張幻燈片,有沒有什麼辦法可以說「任何一個class .x的鏈接都會將滑塊移動到與.x類相同的li」 - 沒有必須爲所有50個課程編寫新的JavaScript?

謝謝:)

+0

你使用什麼插件?很難說,不知道插件是什麼 – Jason

+0

它被稱爲任何滑塊,它是一個非常簡單的jQuery滑塊,允許任何類型的內容。 [AnythingSlider](http://css-tricks.com/anythingslider-jquery-plugin/) – Miiitch

+0

保存點擊項目的類var something = $(this).attr('class');並將其插入代碼中 –

回答

0

不,你不能。你的腳本將如何知道哪些類是有意義的?當然,你可以把它放在一個循環:

var $slider = $('#anyslider'); 
["gibbs", "gobbs", "gabbs", ...].forEach(function(className) { 
    $("a."+className).click(function(){ 
     $slider.anythingSlider('.'+className); 
    }); 
}); 

或者,如果你對每一個環節的只是一個單一的類:

$("a.gibbs, a.gobbs, a.gabbs, ...").click(function moveToMyClass() { 
    $('#anyslider').anythingSlider('.'+this.className); 
}); 
1

如果我理解你,那是肯定的。

假設只有一個元素得到處理階級,

$("a[class]").click(function(){ 
    $('#anyslider').anythingSlider('li.' + this.className); 
}); 

這適用的處理程序有至少一個類中的任何a元素。你可能想縮小一點,但我不知道沒有你的更多信息。

此外,可能會有更好的解決方案,但同樣需要更多信息。


即使有多個類,只要其中一個類匹配目標,就可以使其工作。

$("a[class]").click(function(){ 
    $('#anyslider').anythingSlider('li.' + this.className.split(/\s+/).join(',li.'); 
}); 
0

綜觀API,好像你可以做類似

$("a.gibbs").click(function(){ 
    var slide = $('#anyslider ' + this.className)); 
    $('#anyslider').anythingSlider(slide.index()); 
}); 
0

它可以有多個類名稱對於任何給定的元素。

這樣:<a class='slideme' id='gibbs'>Slideable stuff...</a>

這取決於什麼anythingSlider()方法需要作爲一個參數,但如果它接受一個I​​D而不是一個類時,你可以這樣做:

$("a.slideme").click(function(){ 
    $('#anyslider').anythingSlider('#'.this.id); 
}); 

如果它接受一個DOM對象或jQuery對象,分別使用this$(this)