1

JQueryとSafari(Windowsバージョン)に問題があります。コードはFF/IE7 / Chromeで機能しますが、Safariでは機能しません。

に埋め込まれているシンプルな<li>ものがあります<div>-をクリックすると非表示が表示されますが、Safariでは<li>表示されません。div

HTML:

<ul>
<li>something</li>
<li>something2</li>
<li class="more">
        <a href="" class="moreFacetsLink">Click to see more options</a>
        <div class="moreFacets">bunch of text</div>
</li>
</ul>

JQueryコードは次のとおりです。


     $('.moreFacetsLink').click(function () {
$(this).siblings('div').toggle(); });

ここで何が起こっているのかについて何か考えはありますか?繰り返しますが、これは他のすべてのブラウザで機能するようです。

JQueryに関しては、私は初心者です。

ありがとう!

4

4 に答える 4

1

HTML の貼り付けはどのくらい正確ですか?

「moreFacetsLink」アンカータグを閉じたことがないため、おそらくSafariは暗黙的に閉じられたと考え、「テキストの束」は追加のHREFなしのクラスなしの閉じられていないアンカータグで囲まれています...事実によって証明されますこれは:

$(".moreFacetsLink").click(function () {
    $(this).siblings("a").children("div").toggle();
});

... 送信されたマークアップで必要なことを行います。

アンカー タグを適切に閉じてください (href 属性を含めるためのボーナス ポイント)。

于 2008-11-14T21:04:43.763 に答える
0

return false;リンクのクリックをキャンセルするには、クリック機能からする必要があると確信しています。

于 2010-10-08T20:40:47.050 に答える
0

最初に、ブラウザがポストバックを実行しているかどうかを確認する必要があります。これが true の場合は、次のように回避できます。

$('.moreFacetsLink').click(function (e) {
    e.preventDefault(); // this prevent postback

    $(e.target).siblings('div').toggle();
});

これを試してください:これ$(e.target)の代わりにこれ$(this)
は別の方法かもしれません

お役に立てれば

于 2011-05-04T17:25:33.743 に答える
0

href="" は safari でページをリロードしています
。css を使用して下線を引き、スタイルを設定し、空の href を削除してみます。

于 2009-03-18T10:56:21.173 に答える