0

div内に埋め込まれたこのアンカーからクリックイベントをキャッチしようとしています...アンカーは実際にモーダルダイアログフォームを呼び出します。ポップアップが表示されないように、その呼び出しを抑制する必要があります。

<div id="whatever"><a class=" modal-dialog button action-add" href="/x/y/z">add</a></div>

<script type="text/javascript">
    $("#whatever").click(function (e) {
        alert('hello');
        e.preventDefault();
    });
</script>

上記のコードが呼び出されますが、モーダルフォーム/ポップアップがポップアップ表示されます。アンカークリックでポップアップを抑制したいのですが。e.preventDefaultがこれを行うと思いましたが、ポップアップはまだ表示されています。

4

1 に答える 1

2

問題は、ハンドラーがアンカーのクリックから伝播した後にのみ呼び出されることです。これは、アンカーのデフォルトの動作がまだ発生していることを意味します。

div内にアンカーしかない場合は、これでうまくいきます:

<script type="text/javascript">
    $("#whatever a").click(function (e) {
        alert('hello');
        e.preventDefault();
    });
</script>

他に何かある場合:

<script type="text/javascript">
   $("#whatever a").click(function (e) {
        e.preventDefault();
    });
    $("#whatever").click(function (e) {
        alert('hello');
    });
</script>
于 2012-05-02T00:17:51.510 に答える