Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript通配符?_Javascript_Jquery_Wildcard - Fatal编程技术网

Javascript通配符?

Javascript通配符?,javascript,jquery,wildcard,Javascript,Jquery,Wildcard,我有一点Javascript,可以与插件一起工作,这样静态文本链接对应于jquery滑块中的特定幻灯片。看起来是这样的: $("a.gibbs").click(function(){ $('#anyslider').anythingSlider('.gibbs'); }); }); 基本上,任何与class.gibbs的链接都会将滑块移动到与class.gibbs的li 我想知道的是,既然我有将近50张幻灯片,有没有办法只说“任何带有class.x的链接都会将滑块移动到具有相同clas

我有一点Javascript,可以与插件一起工作,这样静态文本链接对应于jquery滑块中的特定幻灯片。看起来是这样的:

$("a.gibbs").click(function(){
  $('#anyslider').anythingSlider('.gibbs');
  });
});
基本上,任何与class.gibbs的链接都会将滑块移动到与class.gibbs的li

我想知道的是,既然我有将近50张幻灯片,有没有办法只说“任何带有class.x的链接都会将滑块移动到具有相同class.x的li”——而不必为所有50个类编写新的javascript


谢谢:)

不,你不能。您的脚本如何知道这些类是什么意思?当然,你可以把它放在一个循环中:

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);
});

如果我能理解你,那么我会的

假设元素上只有一个类获得处理程序

$("a[class]").click(function(){
  $('#anyslider').anythingSlider('li.' + this.className);
});
这将处理程序应用于至少有一个类的任何
元素。你可能想把范围缩小一点,但如果没有你提供的更多信息,我不知道该怎么做

此外,可能有更好的解决方案,但同样,我们需要更多的信息


即使有多个类,只要其中一个类与目标匹配,也可以使其工作

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

看看API,您似乎可以执行以下操作

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

任何给定元素都可能有多个类名

所以:
可滑动的东西…

这取决于
anythingSlider()
方法作为参数的期望值,但如果它接受ID而不是类,则可以执行以下操作:

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

如果它接受DOM对象或jQuery对象,只需分别使用
this
$(this)

您使用的插件是什么?很难说不知道插件的作用是什么。它叫anything slider,是一个非常简单的jquery slider,允许任何类型的内容。保存单击项的类var something=$(this.attr('class');并将其插入代码中