如何在不修改“this”的情况下包装现有事件处理程序
How to wrap existing event handler without modifying "this"?
我使用一些现有的代码,有一个表单提交处理程序:
function AjaxFormSubmit(e) {
[...]
var form = $(this);
[...]
}
在我的视图代码中绑定处理程序,我这样做:
$('myForm').submit(AjaxFormSubmit);
我想做的是在调用AjaxFormSubmit之前运行一些其他代码,像这样:
$('myForm').submit(function(e) {
doSomething();
AjaxFormSubmit(e);
});
问题是,在AjaxFormSubmit,调用$(this)没有得到表单元素。实现这一目标的最佳方式是什么?
您需要确保在正确的上下文中调用this
。
$('myForm').submit(function(e) {
doSomething();
AjaxFormSubmit.call(this, e);
});
$('myForm').submit(function(e) {
doSomething();
AjaxFormSubmit.call(this, e);
});
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不影响其他元素的情况下扩展DIV
- 如何在不删除子元素的情况下删除包装器(父元素)
- Koa:在没有现有包装器的情况下连接到数据库的最明智的方法是什么?
- 如何在没有电子包装器的情况下更改电子应用程序图标
- 如何在没有包装器的情况下包含模板
- 如何在不修改“this”的情况下包装现有事件处理程序
- 如何在不使用html包装的情况下将视图模型数据绑定到Kendo DropDownlist