我有以下代码:
<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框,不知道为什么
这是一个错误还是我错过了什么?
最好的, 尤
答案 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 ])