-1

静的テキスト リンクが jquery スライダーの特定のスライドに対応するように、プラグインで動作する Javascript が少しあります。次のようになります。

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

したがって、基本的に、class .gibbs のリンクは、スライダーを class .gibbs の li に移動します。

私が疑問に思っているのは、私は50枚近くのスライドを持っているので、「クラス.xのリンクはスライダーを同じクラス.xのliに移動する」と言うだけの方法があるということです.newを書く必要はありません. 50クラスすべてのJavaScript?

ありがとう :)

4

4 に答える 4

1

私があなたを理解していれば、はい。

要素にハンドラーを取得するクラスが 1 つだけあると仮定すると、

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

これにより、少なくとも 1 つのクラスを持つすべての 要素にハンドラーが適用されます。a少し絞り込みたいと思うかもしれませんが、あなたからのより多くの情報がなければどうすればよいかわかりません.

また、より良い解決策があるかもしれませんが、ここでも、より多くの情報が必要です。


複数のクラスが存在する場合でも、いずれかのクラスがターゲットに一致する限り、機能させることができます。

$("a[class]").click(function(){
  $('#anyslider').anythingSlider('li.' + this.className.split(/\s+/).join(',li.');
});
于 2012-05-17T17:50:10.463 に答える
0

任意の要素に対して複数のクラス名を持つことができます。

それで:<a class='slideme' id='gibbs'>Slideable stuff...</a>

メソッドがパラメーターとして何をanythingSlider()期待するかによって異なりますが、クラスではなく ID を受け入れる場合は、次のようにすることができます。

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

DOM オブジェクトまたは jQuery オブジェクトを受け入れる場合は、それぞれthisまたはのみを使用$(this)します。

于 2012-05-17T20:48:56.253 に答える
0

いいえ、できません。あなたのスクリプトは、どのクラスが意図されているかをどのように知るでしょうか? もちろん、それをループに入れることができます:

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

または、各リンクに 1 つのクラスしかない場合:

$("a.gibbs, a.gobbs, a.gabbs, ...").click(function moveToMyClass() {
     $('#anyslider').anythingSlider('.'+this.className);
});
于 2012-05-17T17:45:02.223 に答える
0

APIを見ると、次のようなことができるようです

$("a.gibbs").click(function(){
  var slide = $('#anyslider ' + this.className));
  $('#anyslider').anythingSlider(slide.index());
});
于 2012-05-17T17:51:11.583 に答える