3

ページのdiv内にあるリンクに問題があります。現在、リンクをクリックしても何も起こりません。理由はわかりませんが、以下で説明する、含まれているdivでのhide()とshow()の使用に関係していると思います。

divは、ヘッダーがクリックされたときに次のJqueryを使用して適切なdivを開閉するカスタム「アコーディオン」の一部です。

   $('.accordion .head').click(function () {
     $('.accordion .head').next().hide();
     $('.accordion .head').removeClass("active");

     $(this).next().show('fast');
     $(this).addClass("active");
     return false;
});

「アコーディオン」の動作を実現するためのより良い方法があることは理解していますが、これは当社のWebサイト全体で使用されているため、実際のJquery accordion()メソッドを使用するようにアコーディオンを更新するオプションがありません。私自身。

それで、以下のサンプルコードを考えると、誰かが私がここで問題が何であるか、またはそれを克服する方法を理解するのを手伝ってくれるでしょうか?

<div class="accordion">
  <div class="head active"><a href="#">Heading 1</a></div>
  <div class="accordion-content first">
      <p>
           Some text here
      </p>
      <div class="accordion-logos"> 
      </div>
  </div>            
  <div class="head"><a href="#">Heading 2</a></div>
  <div class="accordion-content">
      <p>
          Some other text here 
      </p>
      <p>
          <a href="http://www.google.com">http://www.google.com</a>                                    
      </p>
  </div>            
</div>

特に処理すると、クリックして登録することすらできません。リンクがクリックされたときに、以下のコードのアラートが発生することはありません。

  $('.accordion .accordion-content #thelink').click(function () {
    alert();
  });

ありがとうございました、

薔薇

4

3 に答える 3

2

リンクをクリックできないという問題があり、この投稿に出くわして答えを見つけようとしました。問題は、jquery hide() がヘッダーの下の div 要素で起動された後、ヘッダー内のリンクをクリックできないことでした。コードを hide() ではなく slideUp() に変更すると、リンクをクリックできるようになりました。これがこの投稿で指定されたあなたの質問を解決するかどうかはわかりませんが、関連していることを見て、この投稿に出くわした人を助けるかもしれないので共有したいと思いました. . hide() ほど適切ではありませんが、使用可能な回避策です。

$('#mydiv').slideUp();
于 2014-06-11T10:05:37.173 に答える
1

私は最初にあなたを誤解したようです。

Google リンクが起動しない場合は、何かがリンクをブロックしているか、リンクの href を上書きしているか、別の要素がその前にあり、リンクをクリックできない可能性があります。

誰かがリンクをブロックして機能させたい場合は、次のようにすることができます。

$('.accordion .accordion-content a').click(function(){
    return false;
});

そうであるかどうかを確認したい場合は、すべてのバインドを解除して、リンクをクリックできるかどうかを確認してください。

$('.accordion .accordion-content a').unbind('click');

また、html 出力をチェックして、href値が何に設定されているかを確認してください。誰かが上書きした可能性があります。

レンダリングされたページに移動し、右クリックして [ソースの表示] を選択します。Google リンクを検索し、href値を確認します。

</p>

于 2012-08-15T15:37:09.213 に答える
-1

なぜ #thelink を使用しているのですか? 私はそれを置き換えるだけaで動作します。

$(function(){
   $('.accordion .head').click(function () {
    $('.accordion .head').next().hide();
    $('.accordion .head').removeClass("active");

    $(this).next().show('fast');
    $(this).addClass("active");
    return false;
  });

  $('.accordion .accordion-content a').click(function () {
   alert();
  });
})

</p>

于 2012-08-15T15:37:30.243 に答える