【问题标题】:Trigger a custom jquery event触发自定义 jquery 事件
【发布时间】:2016-06-16 16:15:14
【问题描述】:

我正在动态创建一些表单元素,我需要为每个元素触发一个事件。

假设我有这样的事情:

$("#select_123").val("easy").change().trigger("createRow");


$("#container").bind("createRow",function() {
   //doStuff
}

如何链接 .trigger 来运行“createRow”事件?更好的是,我怎样才能使用 .delegate 而不是 .bind?

【问题讨论】:

  • 我没有关注你的问题。如果你在触发它之前钩住事件(上面钩住它之后),你会收到这个事件。
  • 旁注:.bind.delegate 完全过时了。现代的使用方法是on
  • 哦,哇,重新订购,它工作。好酷。

标签: jquery events triggers


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2015-07-06
    • 1970-01-01
    • 2012-10-09
    • 2013-06-16
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多