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

时间:2010-02-02 07:39:21

标签: javascript jquery javascript-events

我有以下代码:

<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中获得的元素相同 但没有

BEFORE BIND:这是FORM,正如预期的那样

BIND:这是INPUT框,不知道为什么

这是一个错误还是我错过了什么?

最好的,  尤

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,那么这应该是你想要的:

$(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');

});

答案 1 :(得分:0)

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

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