使用jQuery,如何触发由另一个版本的jQuery处理的事件
With jQuery, how to trigger and event that is handled by another version of jQuery?
有了jQuery
,我想触发一个keypress
事件,其中该事件由另一个版本的jQuery
处理。
jQuery2 = jQuery.noConflict(true);
$(function(){
$("#fff").keypress(function(event) {
if (event.which == 13) { alert('jQuery'); }
});
jQuery2('#fff').trigger(jQuery2.Event("keypress",{keyCode:13, which:13}));
});
请注意,处理程序是用$
定义的,而事件是用 jQuery2
触发的。
这是一个演示:jsfiddle。处理程序代码无法运行!
请帮忙!
jQuery的.trigger
函数只遍历在jQuery中注册的事件处理程序。
相反,请使用本机 DOM 事件创建和触发函数 - 无论哪个 jQuery 实例注册了它,都应该捕获您的事件:
var ev = new Event('keypress');
ev.keycode = 13;
ev.which = 13;
document.getElementById('fff').dispatchEvent(ev);
请参阅 http://jsfiddle.net/alnitak/b9mCL/
我的猜测是,由于$
和jQuery2
是两个不同的包装器,它们选择的对象也不同。这就是事件不会被触发的原因。您可以在变量中缓存所选对象,然后引发事件:
var $input = $("#fff");
$input.keypress(function (event) {
if (event.which == 13) {
alert('jQuery');
}
});
$input.trigger(jQuery2.Event("keypress", {
keyCode: 13,
which: 13
}));
小提琴演示
相关文章:
- 如何使用多个jquery版本,以便Responsive Slides.js工作
- 在页面上加载高级jQuery版本准备就绪
- 如何以编程方式了解jQuery版本
- 如何包含多个 jquery 版本以使多个 jquery 插件工作
- 如何实现数据()的非jQuery版本
- 在同一页面中使用两个不同的jquery版本
- 使用jqGrid的最低jQuery版本
- JQuery版本与Div搜索效果冲突
- jquery版本在1.8到1.11之间存在冲突
- 编辑 jQuery 插件以匹配不同的 jQuery 版本
- Jquery 版本冲突 Web 主机
- 更改可爱的文件浏览器以与任何jquery版本兼容
- JQuery image.mapster 与其他 jquery 版本发生冲突
- PHP文件未使用$.post调用(我应该使用JQuery版本?)
- 使用不同的Jquery版本而不发生冲突
- css+jQuery样式.css切换器,用于新的jQuery版本
- jQuery版本的简单javascript不起作用
- 使用最新的jquery版本时,JSON是未定义的错误
- 使用Ajax(jquery版本)获取图像文件标记值,并将结果显示为实时预览器
- 函数闭包中的另一个jQuery版本