我正在动态创建一些表单元素,我需要为每个元素触发一个事件。
说我有这样的事情:
$("#select_123").val("easy").change().trigger("createRow");
$("#container").bind("createRow",function() {
//doStuff
}
如何链接.trigger来运行“createRow”事件?更好的是,我如何使用.delegate代替.bind?
答案 0 :(得分:1)
您的代码在您为其处理了一个处理程序之前触发了该事件。如果你颠倒了订单,那就可以了。
它还可以处理事件委派,因为默认情况下jQuery的自定义事件会冒泡。所以你只需触发孩子的事件并在父母身上观察它。
示例:
$(".child").on("click", function() {
// Fire the custom event on the child element
$(this).trigger("custom-event");
});
// Watch for custom events using delegation
$("#parent").on("custom-event", ".child", function(e) {
console.log("Got event: " + e.type);
});

<div id="parent">
<div class="child">Click me</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;