質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2937閲覧

jQuery表示のリンクの戻り先

ky_46

総合スコア92

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2015/12/24 01:52

編集2015/12/24 08:29

jQueryを用する上では基本的な事かもしれませんが、質問させていただきます。

あるサイト、はっきり言ってしまうと、ヤフーの「トリプル」というサービスなのですが、jQueryと、それを利用する画像スライダ、jquery.bxslider を設置してもうまく動作しません。
スライダの「送り」や「戻り」をクリックすると、「ファイルがありません」という404エラーのような表示になります。
理由をいろいろ考えたのですが、どうも戻り処理(?)がうまくないような気がします。

まず、通常のHTMLで、Aタグなどにより移動先がある場合、そのリンクにマウスカーソルをホバーの状態で置くと、リンク先の情報などがブラウザの下部(Firefoxだとステータスバー)に表示されると思います。

ところが、jQueryと、jquery.bxslider によって作られた移動先部分にマウスをホバーさせても、そのページがあるディレクトリを示すのみで、どこに移動しているのか判りません。

イメージ説明

この場合設置先は、http://8-dai.com/jQuery/になるのですが、スライダーの<にマウスを置くと、設置URLそのものがステータスバーに表示されます。

この場合、例えばスライダーの「送り」や「戻り」が選択された という情報は、どこに格納されて送られているのでしょうか?

予想として、この戻りURLがディレクトリまでしか表示していないため、ヤフートリプルのサーバでは、どこに戻したら良いのかがわからず、不明になっているのではないかと思っています。
この部分で、戻るファイルまで指定できれば、エラーが回避出来るのではないかと思うのですが…

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

サンプルのhttp://8-dai.com/jQuery/では、正常に動作しているようですが・・・

確かに、jquery.bxslider.jsの内部を見ると、populatePager()の処理で

html

1<div class="bx-pager-item"><a href="" data-slide-index="0" class="bx-pager-link">1</a></div>

と、href="" (ここでは、http://8-dai.com/jQuery/)にリンクしているように見えます。
しかしながら、このa要素にクリックイベントをバインドして、そのイベントハンドラ内にe.preventDefault();として、その後の通常のイベント「http://8-dai.com/jQuery/へのリンクをクリック」はキャンセルされています。
この、サンプルでは、エラーが再現できないのでここまでしかわかりません。

しかし、

ヤフートリプルに限って、「ファイルがありません」という404エラーのような表示

という問題がある以上、イベントの伝搬はキャンセルされていないことから、全くの推論ですが、bxスライダーのある部分よりも、DOM上の先祖階層に何かあるとしか思えません。
ブラウザのF12開発者モードか何かで、このヤフートリプル環境でのDOM上の先祖階層を確認すれば、もしかしたら何かわかるかもしれません。


もし、このイベントの伝搬が原因なら、以下のスクリプトを試してみてください。

javascript

1 2onSliderLoad : function() { 3 timeout_id = setTimeout(null, 10000); 4 // bxsliderのスライドロードイベントに追加 5 $(".bx-wrapper").on("click", function(e) { 6 e.stopPropagation(); 7 }); 8}, 9

投稿2015/12/24 15:47

編集2015/12/24 16:54
blackonyx

総合スコア354

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ky_46

2015/12/25 14:14

ありがとうございます。 https://www.facebook.com/kazuhiro.yoshikawa.54/videos/vb.100002017851641/929554980455088/?type=2&theater&notif_t=video_processed 上記のスクリプトを組み込んだ結果の動画です。 <script type="text/javascript"> $(document).ready(function(){ $('.bxslider').bxSlider({ onSliderLoad : function() { timeout_id = setTimeout(null, 10000); // bxsliderのスライドロードイベントに追加 $(".bx-wrapper").on("click", function(e) { e.stopPropagation(); }); }, }); }); </script> にて組み込んだところ、動画のような動作になりました。 つまり、スライドボタンの何処かをクリックすると、一瞬その動画に飛ぶものの、すぐに1枚目に返ってきます。 どうも、リロードをかけたのと同じになっているようです。 </html><!-- text below generated by geocities.jp --></object></layer></div></span></style></noscript></table></script></applet><link href="http://bc.geocities.yahoo.co.jp/js/no.css" rel="stylesheet" type="text/css"><script language="javascript">var jps=2080250412;var jpt=1451052605</script><script language="javascript" src="http://bc.geocities.yahoo.co.jp/js/no.js"></script><script language="javascript" src="http://bc.geocities.yahoo.co.jp/js/geov2.js"></script><script language="javascript">geovisit();</script><script language="javascript" src="http://bc.geocities.yahoo.co.jp/js/sc.js"></script><script language="javascript">var geocities_triple_ref="";</script><script language="javascript">divSb();</script> ページソースを表示すると、このような妙なHTMLタグが付随しますし、shopping.geocities.jpの特性なのかもしれませんが、なんとかして希望のスライダを設置したいと思っています。
blackonyx

2015/12/26 11:05

`http://bc.geocities.yahoo.co.jp/js/sc.js`の中にa要素のクリックイベントに対する記述があるようです。
ky_46

2016/01/03 05:06

ありがとうございます。 for( i = 0; i < maxElm; i += 1){ if($a[i].href.indexOf('http') === 0 || $a[i].href.indexOf('//') === 0){ YAHOO.JP.lib.addEvent( $a[i] ,'click', function(event){ self.check(this, option.bouncerURL, option.regexpArray, option.exceptionURL, urlParams); YAHOO.JP.lib.preventDefault(event); }); } } この部分の事だと思いますが、あっていますか? 内容にはあまり詳しくありませんが、preventDefaultでAタグのイベントがキャンセルされているという事でしょうか?
blackonyx

2016/01/03 05:48

それ以前に、同じAタグにイベントが複数登録されていることが、予期せぬ動作につながっているということだと思います。
guest

0

初めまして
まずboxsliderの最小構成ですが、
bxSliderのページに書いてあるとおり

html

1<ul class="bxslider"> 2 <li><img src="/images/pic1.jpg" /></li> 3 <li><img src="/images/pic2.jpg" /></li> 4 <li><img src="/images/pic3.jpg" /></li> 5 <li><img src="/images/pic4.jpg" /></li> 6</ul>

このようなhtmlを用意し

js

1$('.bxslider').bxSlider();

をjavascriptで実行すると横並びのsliderが完成します。
なのでその構成を守りつつ、imgタグのsrc属性にちゃんと画像への参照パスが入っていれば問題無いです。
ここもsrc="/aaaaa"なのかsrc="aaaaa"なのかで変わってくるのでそちらもご確認下さい。

また、もしそれでも治らない場合は
エラー内容の詳細
・imgタグに指定している参照パスが間違っているのか
・bxsliderの実行ができてないのか(横並びになってないかいるか)

を教えていただけると嬉しいです。
一番検証しやすいのはそのバグがでているurlを貼っていただけるとすぐに検証できます。

よろしくお願い致します!

投稿2015/12/24 04:23

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ky_46

2015/12/24 08:33

すみません。言葉が足らないか、キャプチャ画像が判りにくかったようで、誤解を与えてしまいました。 スライダーそのものは、正常に動作し、画像をクリックすると、希望の跳び先へジャンプします。 ただ、スライダをコントロールする上記画像の赤丸部分をクリックすると、ヤフートリプルに限って、「ファイルがありません」という404エラーのような表示になります。 ちなみに、まったく同じbxSliderを持つページは、別のサーバーですと正常に動作します。質問のURLでも正常です。 質問の内容は、スライダーの制御部分をクリックしたとき、何処へ飛ぼうとしているのか?という事になります。 ブラウザの表示では、そのファイルのあるディレクトリまでしか指していないので、ここがサーバーの設定によってはうまく拾えず、ファイルが見つからないとなってしまうのではないか? と推測しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問