touchSliderを復数設置した際の問題と解決方法

このQ&Aのポイント
  • touchSliderを復数設置した際に起こるカウントの問題を解決する方法について教えてください。
  • 質問者は、touchSliderというjqueryのプラグインを使用しようとしていますが、同一ページに復数のスライダーを設置すると、3番目のスライダーの次へボタンを押すと全てのカウントが動いてしまうという問題に直面しています。
  • 質問者は、プラグインを修正するか、該当箇所に連番でclassやidを追加することを検討していますが、解決方法が分からないため、アドバイスを求めています。
回答を見る
  • ベストアンサー

touchSliderを復数設置した時

touchSliderというjqueryのプラグインを使用しようと思っています 同ページに復数設置する予定なんですが 例えば3番目のスライダーの次へボタンを押すと 全てのカウントが動いてしまいます ▼設置例 http://mesohoge.web.fc2.com/touchSlider/examples/ ▼プラグイン http://mesohoge.web.fc2.com/touchSlider/jquery.touchSlider.js $(document).ready(function(){ $('.gallery').touchSlider({ mode: 'index', center: true, prevLink: 'a.prev', nextLink: 'a.next', single: true, onChange: function(prev, curr) { $('.counter').html((curr+1)+'/'+ $('.gallery').get(0).getCount()); }, onStart: function(){ $('.counter').html('1/' + $('.gallery').get(0).getCount()); } }); }); .counterとなっているので全てのカウントが動いてしまっていると思うのですが もしプラグインなりを修正して動くようなやり方があれば教えていただきたいです 該当箇所に連番でclassなりidを追加するようにしようとも思ってます 何卒よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

セレクタがクラス指定だけなので、全部に反映されてしまうのはご推察の通りでしょう。 APIなどから処理中の要素が取得できれば簡単なのですが、このプラグインはその様には作成されていないのかも。 (thisは自分を返すみたいだし、ドキュメント情報が見つからなかったので不明ですが) とりあえずの方法として、個別に設定することにすればなんとかなるのではないでしょうか。 ANo1様と同様の発想ですが、jQuery利用なので繰り返し記述する必要はないでしょう。 (classは現状のままで、id等は不要です) (全角空白は半角に) $(document).ready(function(){  $('.gallery').each(function(){   var obj = $(this);   obj.touchSlider({    mode: 'index',    center: true,    prevLink: 'a.prev',    nextLink: 'a.next',    single: true,    onChange: function(prev, curr) {     $('.counter', obj).html((curr+1)+'/'+ obj.get(0).getCount());    }   });  }); }); ※ start時にはchangeのイベント処理も呼ばれているようなので省略。 ※ ご提示のサンプルで要素idが重複しているのは文法違反ですのでご注意。

kaji102s
質問者

お礼

無事個別でカウント部分が動くようになりました 細かい部分まで本当にありがとうございます!

その他の回答 (1)

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

連番なりclassなりidなりを追加して見るのが早いですよ。 たとえば、.gallaryと.counterはそれぞれ後ろに連番をふって三回書いてください。 1回目の例は下記です。 htmlも同様に連番を振って記述してください。 それでうまく動くはずです。 $('.gallery1').touchSlider({ mode: 'index', center: true, prevLink: 'a.prev', nextLink: 'a.next', single: true, onChange: function(prev, curr) { $('.counter1').html((curr+1)+'/'+ $('.gallery1').get(0).getCount()); }, onStart: function(){ $('.counter1').html('1/' + $('.gallery1').get(0).getCount()); } });

kaji102s
質問者

お礼

ご回答ありがとうございます! すいません書き忘れていたのですが スライダー部分は一つのテンプレートでシステムで 復数表示させている仕様になっていまして できればひとつのjsで出来ないかなと思ったしだいです 難しいようようでしたら ONEONEさんのご回答頂いたとおり jqueryでclassやidを追加してやったほうが早いと思いますので それで進めていきたいと思っています!

関連するQ&A

  • FC2カウンター複数設置(HPとブログ)について

    以前からFC2カウンターをHPのカウンターとして使っております。 今回新しくFC2ブログを開設しました。 ブログにもカウンターを設置しようと思い FC2カウンターの複数設置管理画面から カウンターを一つ増やしました。 ところが FC2ブログにプラグインで挿入した場合は ★マークのデフォルトカウンターが使用されます との注意書きがあり 以前からHPで使っているカウンターの方に★マークがついている状態になりました。 私としては 新しく設置した方のカウンターをブログに反映させたいのですが 任意で選べるような記述が見つけられず困っています。 新しく増やしたカウンターのプラグインでのブログ設置は可能なのでしょうか?

  • アクセスカウンターの設置

    自サイトに最初、カウンターを設置せずにいたのですが、途中からカウンターをつけた場合、今までの訪問件数もカウントしてくれるのですか?それとも0からのカウントでしょうか? ちなみにfc2ブログです。

  • FC2のカウンター設置が出来ない

    FC2ブログを始めて少し経ちます。 カウンター設置が出来ません。 管理者のページ→環境設定→プラグイン設定→ プラグインの追加→FC2カウンター→設定/追加する を選ぶと、 『FC2カウンターに未登録の場合、もしくはFC2IDにブログを移行していない場合はこちらをクリックして登録してください。 登録完了後、このページの再読み込みをしてください』 と出ます。 『こちらをクリック』をクリックすると、 『あなたはログインしていません。サービスをご利用になるには トップページからログインしてください。』と、出て来て、 FC2ブログのアドレスとパスワードを入力すると、 未登録と出て来てしまいます。 登録をしようとFC2ブログと同じアドレスを入力し、 ID取得まで行ったのですが、FC2ブログと同じIDにしよとしたら、 使われているので、他のIDにして下さいみたいな、文字が出て来ます。 他のIDにしたら、設置出来ませんよね。 どうしたらいいのでしょうか?

  • Fc2カウンターについて

    私はFc2ブログ(http://20090730.blog62.fc2.com/)をやっていまして、Fc2カウンターを設置しています。 最近アメーバピグだけをやりたくて、アメブロも開設(http://ameblo.jp/2009730/)しました。 そこで、そのアメブロにもFc2カウンターを設置しました。 設置できたのはいいのですが、Fc2カウンター管理画面で「自分をカウントしない」にチェックをいれても、アメブロのカウンターは自分のアクセスをカウントしてしまします。 なぜでしょうか?カウントしないようにするにはどのようにしたらよいのでしょうか? 宜しくお願いします。

  • 2つのアクセスカウンターの数が違うのはなぜ?

    ブログのトップページに10ヶ月以上前からアクセスカウンターを設置しています 今まで、二重カウントしない「忍者」を使っていたのですが カウンターの絵柄が今ひとつで気に入っていません。 それに対し「FC2」のカウンターはお気に入りの柄がありましたが 二重カウント防止になってなかったので使っていませんでした。 ところが、最近「FC2」のカウンターも二重カウント防止機能がついたので 「忍者」から「FC2」に移行しようと思ってます しかし、いきなり移行するのも不安がのこり、ここ数日は 「忍者」と「FC2」両方のカウンタを設置してみたんです そしたら、両方とも二重カウント防止機能がついているにもかかわらず 数値が毎日20くらい違います(忍者>FC2) (1)両方とも二重カウント防止機能がついているのに数が違ってくるのは、なぜなんでしょうか (2)「忍者」と「FC2」どちらのデータが正しいのでしょうか     この場合の「正しい」というのは、私が求めている訪問者の数え方だと思いますが     ・一日に時間を変えて同じ記事を2回以上見ても、1でカウント     ・一日に時間を変えて違う記事を読んでも、1でカウント     ・ブログ内の複数の記事を読んでも、1でカウント (3)もしどちらも正確でない場合は、今まで設置していた「忍者」と    カウンター数が少なくでる「FC2」、どちらを使うとよりベターなんでしょうか 以上、長くなりましたが、よろしくお願いいたします

  • jQueryで要素を複製するプラグインの作成

    jQueryのプラグインを作成しています。 やりたいことは、追加ボタンをクリックしたら、指定要素を複製していくというものです。 下記のようにプラグインを作成しましたが、 なぜか要素(clone_base1)が消えてしまいます。 原因もわからず困っています。 どのようにしたらよいのでしょうか。 (function(jQuery) { jQuery.fn.clone = function(options) { //defaultの値 var options = jQuery.extend({ reset_form: true ,clone_base : "clone_base1" }, options); return this.each(function() { jQuery(this).click(function(){ //元となるボックスを複製 jQuery("."+options.clone_base).clone().appendTo("."+options.clone_base); }); }); }; })(jQuery);

  • 広告なしで初心者でも設置可能なアクセスカウンタを知りたい。

    現在、小さな会社のWebを作っているものです。雛型はプロの方に作ってもらったのですが、現在より良いものにしようと考え、アクセスカウンタを設置したいと考えております。広告なしで、初心者でも設置可能なアクセスカウンタを紹介してください。お願いします。自分は、HTMLの基礎程度を把握しているというレベルです。 (アクセスカウンタは同一IPアドレスからの同じ費の訪問もカウントできるようなものが望ましいです。)

  • FC2ブログのこのようなカウンターを付けたいのですが

    はじめまして。よろしくお願いいたします。 http://pityon.jp/blog/ ↑ このブログみたいに記事のカウンターをクリックすると、カウント値が上がっていくカウンターを設置したいのですが、どうしたらいいのでしょうか? FC2ブログにこのようなプログラムが置けるのかも教えていただけたら嬉しいのですが・・・ よろしくお願い致します。

    • ベストアンサー
    • Perl
  • FC2のHPでjQueryの設置ができない

    FC2のHPでボタンを押すと画像が次々に送られていく一般的なスライド型のjQueryを設置しようとして、参考サイトの通りにソースにプラグインを記述/コピペしたのですが、確認すると、スライド動作が実装されず、ページにただ画像が縦並びになっただけのエラー画面になってしまいます。 解決方法を自分なりに調べて色々試してみましたが、何度やってもダメでした。 行き詰まって先に進めないので、どなたか設置方法を切にお願い致します。 ちなみにタグ類は少しなんとなくわかる程度の初心者なので出来る限り具体的に教えて下さると有り難いです。 <head>と<body>にそれぞれ記述するものを参考サイト通りに入れていったはずなのですが。。 以下に現在打ち込んでいるソースを載せましたので、記述が足りていない/間違っているなど、ありましたら指定して下さい。。 jQueryは現在最新バージョンの【1.10.2】バージョンをFC2ディレクトリにアップロード済みなので一部書き換えなどしてあります。 画像パスが上手くいってないのでしょうか。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.flexslider-min.js"></script> <script type="text/javascript"> $(window).load(function() { $('.flexslider').flexslider({ animation: "slide" }); }); </script> </head> <body style="background-color: rgb(139, 139, 139); color: rgb(0, 0, 0); "> <p>&nbsp;</p> <div class="flexslider"> <ul class="image"> <li> <img src="image/1128355_m.jpg" /> <p class="flex-caption">画像1のキャプション</p> </li> <li> <img src="image/2661080_m.jpg" /> <p class="flex-caption">画像2のキャプション</p> </li> </ul> </body> </div> </html> ーーーーーーー それぞれの動作の意味など細かいところまではわかっていません… プラグインを入れてあるファイルの場所にも問題があるのでしょうか… ちなみにライトボックスの設置には成功したのですが、ファイルの保存先が違うだけでも動作しないような気がしましたので。 あとFC2では構造上、jQueryが元々使用出来ないような記事を見かけたのですが、他のFC2ユーザーの方は出来ているようなので大丈夫ですよね… すごく初歩的な事かと思いますが、何卒宜しくお願いします。。 後々補足から回答者様に再度質問させて頂く事もあるかも知れません。

  • jQueryイメージギャラリーに関しての質問です。

    jQueryに関して。下記URLを参考に、イメージギャラリーを設置しました。 http://www.webdesignerwall.com/demo/jquery/img-replacement.html この、大きく表示されている画像に対して、さらにリンクを設定し、画像をさらに大きく表示させられるようなjQueryプラグインはあるでしょうか。 たとえばこの画像は 550px × 400px となっていますが、さらにこの画像をクリックすることで、別に用意された倍のサイズの画像をlightbox効果を付けて表示できるような、そういったプラグインです。 また、この画像が表示されている部分に、別のHTMLファイルを表示させられるようなプラグインがあるかどうかも知りたいです。 よろしくお願いします。

専門家に質問してみよう