2009-06-30 10 views
0

ユーザーがアンカータグをクリックしたときに、指定されたtdの説明段落を切り替えるjQueryコードがあります。下記のコードを参照してください。私の問題は、表示されているように返信Falseステートメントを置く場合、コードはIEでうまく動作しますが、FFでは予期せぬ記述がまったく表示されないことです。トグル後に戻り値をfalseに設定すると、FFでは正常に機能しますが、IEでは説明が表示されてすぐに非表示になります。両方で適切に動作するようにする方法はありますか?jQueryが奇妙な動作を返す

ありがとうございます。

$(".name").click(function(){ 
    return false; 
    $(this).parent() 
      .parent() 
      .find(".description") 
      .animate({ opacity: "toggle", "slow"); 

}); 

答えて

0

試してみてください。

return !($.browser.msie); 

申し訳ありませんが...私は真であることが必要でどのめちゃくちゃ、偽にする必要があります。

+0

わかりました。私は本当に迷惑になりました...これは、誰かが私を今日控えめにした3度目のことです。あなたが私をdownvoteしようとしている場合は、私の答えを向上させるように建設的な批判でコメントを残すためにボールを持ってください。 – Thomas

+1

私はあなたがどのように感じているか知っているので、アップアップされました... –

+0

"あなたは彼の気持ちを知っていますか?" ... – Hugoware

0

クリックイベントからfalseを返そうとするのではなく、HREF属性を何か他のものに置き換えてみませんか?

$(".name").attr("href", "javascript:;") 
    .click(function() { 
     //..etc... 
    }); 
+0

オハイオ州は、たいていは悪い考えです。ユーザビリティを損なう。代わりにstopPropagationを使用してください。 –

+1

これはJavascriptのみの機能ですが、正しいですか?リンクがどこにもつながっていないので、どのようなユーザビリティが壊れるのでしょうか? – Hugoware

1

あなたのマークアップがどのように見えるかわからなくても、ハンドラが複数のレベルの要素に適用されている可能性があります。 IEでは、2番目のハンドラが可視性を再トグルしている可能性があります。イベントの伝播を停止したり、セレクタがアンカー要素にのみ適用されるようにすることができます。

$("a.name").click(function(e){ 
    e.stopPropagation(); 
    $(this).parent() 
      .parent() 
      .find(".description") 
      .animate({ opacity: "toggle", "slow"); 
    return false; 
});