【问题标题】:Trigger event in jquery without a namespace在没有命名空间的jquery中触发事件
【发布时间】:2012-11-21 09:35:58
【问题描述】:

使用当前版本的 jQuery (1.8.3),您仍然可以使用以下代码(显示带有和不带有命名空间的单击):

$("span")
    .on("click", function(e) { console.log('click without a namespace'); })
    .on("click.namespace", function(e) { console.log('click with a namespace'); })
    .trigger("click!"); // "click without a namespace"

JSFiddle

但是,这似乎在 1.9 中被删除了。 jQuery 的新版本(测试版)有没有办法复制这个特性?还是我必须像这样创建一个自定义事件:

$("span")
    .on("click", function(e) { $(this).trigger("customevent"); })
    .on("click.namespace", function(e) { console.log('click with a namespace'); })
    .on("customevent", function(e) { console.log('"click" without a namespace'); })
    .trigger("customevent");

JSFiddle

【问题讨论】:

  • 您能否更具体地说明什么不起作用?
  • @Vega from jquery 1.9 我将无法使用click! 仅触发click 上的事件(查看测试链接,您将看到只有一个“测试”记录),我发布的第二个代码将“修复”该问题,但这意味着我必须再绑定一个事件。
  • 你的两个样本并不完全相同......如果你让它们都一样,它们的表现都是一样的。你想说什么/做什么?在这一点上,您似乎在要求它做它正在做的事情。
  • 第二个例子是我如何使用 1.9 来做到这一点(或者只是在 jsfiddle 上使用 jQuery edge),我的主要问题是是否有另一种方法来保留或多或少的旧代码并仍然保留这个未记录的功能。
  • jsfiddle.net/oceog/RczDZ/5 检查这个小提琴并告诉一键后的预期结果

标签: jquery onclick namespaces


【解决方案1】:

您可以使用

调用它

.trigger("click.$")

我们发现这是因为正则表达式

http://jsfiddle.net/oceog/RczDZ/10/

【讨论】:

  • +1, Great Hack :) 你能解释一下这种行为的原因吗?你的来源?
  • namespace 部分是正则表达式,所以如果你不想触发 click to not namespaced only 事件,你必须想办法在这里设置空的命名空间字符串。
  • 有没有办法触发每个点击处理程序,除了一个带有命名空间确认的点击处理程序? ('click.confirm') 我不太了解正则表达式..
猜你喜欢
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 2011-11-05
相关资源
最近更新 更多