0

div 内にアンカー要素があります。両方の要素のクリック イベントをリッスンしています。ユーザーが「a」要素をクリックすると、クリック イベント バブルが発生しないようにする必要があります。しかし、アンカーを機能させ続ける必要があります。ユーザーを「href」ページにリダイレクトする必要があります。

HTML:

<div id="myDiv">
    <a id="myLink" href="www.website.com">Click me</a>
</div>

JS:

$("#myLink").click(function() {
    // DO SOME STUFF

    return false;   // To prevent bubble
});

// This event handler has to be called only when the user clicked inside the div, but outside the link
$("#myDiv").click(function() {
    // DO SOME STUFF
});

問題は、ユーザーが「www.website.com」にリダイレクトされないことです。どうすればこれを達成できますか?

4

1 に答える 1

1

イベントのバブリングを適切に防止していません。

$("#myLink").click(function(e) {


    e.stopPropagation(); // this will prevent bubbling.
});

// This event handler has to be called only when the user clicked inside the div, but outside the link
$("#myDiv").click(function() {
    // DO SOME STUFF
});

ここで event.stopPropagation() の詳細を読むことができます: http://api.jquery.com/event.stopPropagation/

リダイレクトする場合は、次を使用する必要があります。

window.navigate('url-goes-here');
于 2013-11-05T16:39:48.557 に答える