如何用另一个onclick事件触发包装在一个事件中的代码
How to trigger code wrapped in one event with another onclick event
将此代码包装在HOVER Event…
$("#div_ID").hover(function() {
// perform stuff here...
}
);
当我使用ONCLICK事件点击链接时,我想触发上述事件…
$("anchor_ID").click (function() {
$("div_ID").trigger('hover'); // Not sure if this is even correct
}
);
但它不起作用。我怎样才能做到这一点呢?这可能吗?仅在FF v16, IE8和GC v23上使用JQuery
这个怎么样:
var dosomething = function() {
// perform the stuff here
}
$('#div_ID').hover(dosomething);
$('anchor_ID').click(dosomething);
但是如果您设置使用.trigger
,您的问题可能是您忘记在div_ID
之前包含#
。并将hover
更改为mouseenter
(在jQuery中的"hover"功能只是"mouseenter"的快捷方式-信用到@FabrícioMatté捕捉),即:
//change this:
$('div_ID').trigger('hover');
//To this:
$('#div_ID').trigger('mouseenter');
同样可能适用于anchor_ID
,但我不知道,除非你发布你的HTML。
Update:另一个来自@FabrícioMatté的建议:dosomething
内部的this
关键字在您如上所示调用它时可能会有点混乱,所以要注意它。this
关键字的工作方式与使用.trigger
不同,所以它只是一个提示....
hover
不是一个事件,所以你不能trigger
它。.hover()
只是附加mouseenter
和mouseleave
处理程序的简写。
$("#anchor_ID").click(function() {
$("#div_ID").trigger('mouseenter');
});
小提琴
注意,当传递单个参数时,.hover
将把函数附加到mouseenter
和mouseleave
上,因此您可以触发它们中的任何一个。
如果您打算仅在用户将鼠标移动到div
上方时执行处理程序,我建议将处理程序附加mouseenter
而不是hover
。
相关文章:
- 使用类从一个标记中双击事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 导航到特定事件的另一个变量页面
- 来自文档或下一个静态父级的事件委派
- 在创建对象后附加一个jquery事件
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- 如何在所有ng点击事件AngularJS上启动一个方法
- 是否<asp:文本框>有一个onFocusLost事件
- React应用程序:道具在下一个事件后更新
- 在Angular ui路由器中,如何将事件从一个视图发送到另一个视图
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 全局屏幕span onclick触发一个事件javascript
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 添加一个javascript函数来下载elfinder上的事件
- jQuery触发器事件在一个循环中多次出现
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- 是否可以同时为一个元素的所有事件指定阻止默认值
- angularjs调用事件中控制器的一个函数