1

以前、リンクで HREF が指定されたときに jQuery が機能しないという質問を投稿しました (元の質問 here )。

最も一般的な提案された答えは preventDefault を使用することでしたが、何らかの理由で、HREF にハッシュ/アンカーがある場合、これは機能しません。たとえば、URL が「http://www.google.com」の場合、デフォルトの動作が妨げられ、期待どおりに jQuery が実行されますが、「http://www.google.co.uk#whatever」の場合は、 preventDefault を無視してリンクをたどります。

私が使用しているリンクにはターゲットがあります (実際には、同じページ内のターゲットのみです)。この風変わりな動作の回避策はありますか?

HTML

<li><a id="OfficeNav-Bath" class="first" href="#bath" >Bath</a></li>

Jクエリ

<script> <!--Offices jquery -->
        $(function() {$("#OfficeNav-Bath").click(function(e){e.preventDefault(); $('.office').removeClass('visible');});});
</script>
4

3 に答える 3

1

あなたがやろうとしていることは問題ないように見えますが、JavaScript タグ ブロック内に HTML コメントがあり、スクリプトが壊れている可能性があります。削除し<!--Offices jquery -->ます。そして覚えておいてください、JavaScript ログ/コンソールはあなたの味方です。

于 2013-01-10T12:38:34.050 に答える
1

使用しているjqueryの正確なバージョンに関する情報がなければ、#jQuery href1.8.2を使用しても問題ないようです。

href 内でjsFiddle を使用し#ても影響はなくevent.PreventDefault()、期待どおりに機能しています。

デモ-event.PreventDefault()そして#_href

上記の DEMO のコードは、link-rot の場合の下にあります。

HTML:

<a id="OfficeNav-Bath" class="first" href="http://www.google.com#whatever" >click me</a>

脚本:

$("#OfficeNav-Bath").on("click", function(event){
  event.preventDefault();
  alert("Prevent Default Works");
})
于 2013-01-10T12:38:59.470 に答える
1

このコードに問題があるとは思いません。問題は別の場所にあるはずです。

見てみな:

ターゲットあり:

于 2013-01-10T12:36:25.893 に答える