jQuery,触发器,绑定,奇怪的参数

gzjq41n4  于 2022-12-26  发布在  jQuery
关注(0)|答案(2)|浏览(166)

下面的代码:

<body>
    <form>
        <input type="text"/>
    </form>

    <script>

        $( function () {

            $(document).bind("EVENT", function (event, element) {
                console.log("BIND", element, event);
            });

            $("form").each( function iterate(index, element) {

                console.log("BEFORE BIND", element);
                $(document).trigger("EVENT", element)
            });
        })
    </script>
</body>

我期望传递给TRIGGER的元素与在BIND得到的元素相同;但是没有!
绑定前:这是FORM,正如预期的那样。
BIND:这是INPUT框,不知道为什么。
是窃听器还是我漏了什么?

9o685dep

9o685dep1#

如果我没理解错你的问题,这应该就是你要找的:

$(function () {
    $(document).bind("EVENT", function (e) {
        console.log('bind', 
                    e.target // this is the DOM element that triggered the event
                             // the form in this case
                    e);
    });

    // Triggering can be simplified a lot
    $('form').trigger('EVENT');

});
qni6mghb

qni6mghb2#

jQuery trigger documentation表示额外的参数应该在数组中传递。

$(document).trigger("EVENT", [ element ])

相关问题