我有一些Javascript适用于插件,因此静态文本链接对应于jquery滑块中的特定幻灯片。它看起来像这样:
$("a.gibbs").click(function(){
$('#anyslider').anythingSlider('.gibbs');
});
});
所以基本上,任何带有类.gibbs的链接都会将滑块移动到带有.gibbs类的li。
我想知道的是,因为我有近50张幻灯片,有没有办法只说“任何与类.x的链接都会将滑块移动到具有相同类.x的li” - 没有为所有50个课程编写新的javascript?
谢谢:)
答案 0 :(得分:1)
如果我理解你,那么是的。
假设获得处理程序的元素上只有一个类,
$("a[class]").click(function(){
$('#anyslider').anythingSlider('li.' + this.className);
});
这会将处理程序应用于至少包含一个类的任何 a
元素。你可能想稍微缩小一点,但如果没有你的更多信息,我不知道怎么做。
此外,可能有更好的解决方案,但同样,我们需要更多信息。
即使有多个类,只要其中一个类与目标匹配,就可以使它工作。
$("a[class]").click(function(){
$('#anyslider').anythingSlider('li.' + this.className.split(/\s+/).join(',li.');
});
答案 1 :(得分: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);
});
答案 2 :(得分:0)
查看API,您似乎可以执行类似
的操作$("a.gibbs").click(function(){
var slide = $('#anyslider ' + this.className));
$('#anyslider').anythingSlider(slide.index());
});
答案 3 :(得分:0)
任何给定元素都可以有多个类名。
所以:<a class='slideme' id='gibbs'>Slideable stuff...</a>
这取决于anythingSlider()
方法期望作为参数的内容,但如果它接受ID而不是类,则可以执行此操作:
$("a.slideme").click(function(){
$('#anyslider').anythingSlider('#'.this.id);
});
如果它接受DOM对象或jQuery对象,则分别使用this
或$(this)
。