在《锋利的JQuery》第二版中有这样一段代码
$("div").bind("click", function(){
alert("click only");
});
$("div").bind("click.plugin", function(){
alert("click plugin");
});
$("#btn").click(function(){
$("div").trigger("click!");//在click后添加叹号,则只触发不在命名空间内的事件
});
但是
$("div").trigger("click!");//在click后添加叹号,则只触发不在命名空间内的事件
似乎只能在1.7.2中使用,而在最新的1.10.2中失效。
没有找到相应文档...求指导
补充说明:
原书的实例在JQ1.7.2中可以实现,然是1.10.2中无法实现。
UPDATE 2014.1.17 这个事情背后其实有个故事,如果你愿意看的话:http://www.soulteary.com/2014/01/17/jquery-trigger-changes.html
简单的来说,原因如下:
首先,1.7.2的代码中的定义是这样,关键代码是它:type.slice(0, -1);
接着来看你说的最新版的1.10.2的代码:
差异一目了然,新版本去掉了对带有!的字符串的支持,所以也就是你所说的不能用了。
官方对于非公开API的取消没有发布任何文档,但是有commit说明,感兴趣的话,可以看看我文章开头给的链接。
如果你还是想实现同样的效果,不妨在自定义事件内添加参数判断。