0

JQuery の on() 関数を使用して、イベントをボタンと、後で動的に作成および挿入されるボタンにアタッチしようとしています。ただし、テスト Web サイトを実行すると、ボタンをクリックせずに alertMe() が呼び出されます。alertMe は .js ファイルにあり、もちろん JQuery ファイルもあります。これは、私が作成できるのと同じくらい簡単な例です。このイベントを JQuery に添付すると、ここで何か不足していますか?

<body>
    <script src="Scripts/JScript.js" type="text/javascript"></script>
    <script src="Scripts/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('button').on("click", alertMe());
        });
    </script>
    <form id="form1" runat="server">
    <div id="1">
        <button data-attr="1">
            Say Sumfin'</button>
    </div>
    </form>
</body>

data-attrこれもアタッチするボタンを識別するために使用するカスタム属性です。

編集

したがって、質問が行われた理由は明らかなままであり、そのままにしておきます。しかし、これは私が実際にイベントを動的に追加された要素に適切にアタッチするために使用したものです。

$(document).on('click', '[data-attr]', alertMe);
4

2 に答える 2

9

これ:

$( 'button' ).on( 'click', alertMe );

この.on()メソッドは、2 番目の引数として関数参照を想定しています。違いに注意してください。

alertMe // function reference

alertMe() // function invocation
于 2012-08-13T19:51:10.490 に答える
0

関数名の後に括弧を入れているからです! つまり、「この関数を呼び出す」ということです。

于 2012-08-13T19:52:02.547 に答える