0

ONCLICK で DIV を表示する機能を備えたスパンがありますが、それは A (HREF) 内にあり、クリックして機能を実行し、サイト A (HREF) に移動した直後に、SPAN をクリックする方法がありません。機能を実行し、A (HREF) のページに移動しませんか?

<a class="style" href="http://stackoverflow.com/">
    <span onclick="javascript:display('div1');">\/</span>
    Stack Overflow
</a>

下手な英語でごめんなさい。

4

2 に答える 2

0

ここで jQuery マジックを使用する必要があるかもしれません。

<a class="style" href="http://stackoverflow.com/">
    <span id="inner-button">\/</span>
    Stack Overflow
</a>

js の場合:

$('a').click(function(e) {
    if (e.target.id == 'inner-button') {
      // Display div.

      e.preventDefault();
    }
});
于 2013-07-24T02:53:28.690 に答える
0

ここで何が起こるかというと、イベント バブリングを扱っているということです。基本的に、スパンをクリックすると、onClick イベントがトリガーされ、実行されます。ただし、スパンはアンカー タグ内にあるため、アンカーの onClick イベントもトリガーします。

  1. スパンをクリックします
  2. スパン クリック イベント コードが実行されます
  3. スパン クリック コードが終了すると、イベントはチェーンを親コンテナーに「バブル」します。
  4. 親コンテナ(アンカータグ)がアクティブになるので、そのクリックイベントを実行します(hrefのページを開きます)

これを止めるには、 と呼ばれる便利な関数がありpreventDefault、泡立ちを止めます。

JavaScriptファイルで

var onClick=function(event){
        //do your code stuff here
        display('div1');
        //then stop the bubbling
        event.preventDefault(); //anchor event won't trigger!
}

次に、HTMLで:

<span onclick="onClick(event)">\/</span>
于 2013-07-24T03:22:17.753 に答える