关于(内联)javascript事件处理程序的jquery事件处理程序的执行顺序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于(内联)javascript事件处理程序的jquery事件处理程序的执行顺序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2038字,纯文字阅读大概需要3分钟。
内容图文
如果我错了,请纠正我,但在我看来,jQuery事件处理完全独立于javascript事件处理.我知道执行jQuery和javascript事件处理程序本身的顺序是未定义的,但可以假设所有javascript处理程序将在jQuery之前执行吗?
在example给出的答案中,这个question似乎是这样的.
此外,是否有任何关于绑定的内联javascript事件处理程序的首选项?
为了澄清,我问这一切是因为我遇到了一个问题,我在< a>的onClick事件上有一个内联事件处理程序.调用封闭形式的submit()方法的元素.在提交表单之前,我想动态地向表单添加一些隐藏的输入.现在我这样做:
var preSubmit = function preSubmit()
{
// add inputs
}
var oldSubmit = form.submit;
form.submit = function newSubmit()
{
preSubmit();
oldSubmit.call(form, arguments);
}
但我真的很想知道是否有更优雅的方式,我真的需要对此进行一些澄清.
解决方法:
我不确定规格,但我认为事件处理程序只是按照您定义的顺序排列.内联处理程序在DOM节点中定义,因此其他任何内容都不能更早.
最优雅的方式是以不引人注目的方式编写所有JavaScript,即将它与HTML分开(您似乎混合了编程风格).无论如何,您可以通过将onsubmit处理程序附加到表单来拦截表单提交:
$("form").submit(function(){
// Do stuff
return true;
});
更新
我做了一些测试,看起来当你在其他地方调用DOM的submit()方法时,通过jQuery附加到表单的onsubmit处理程序不会被触发.这是一个解决方法:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
$("a").each(function(i, a){
a.onclick = function(){ // Remove previous handlers
alert("I will no longer submit the form");
$(this).closest("form").submit();
};
});
$("form").submit(function(){
alert("I'll take care myself, thank you");
$("input[name=foo]").val("Another value");
return true;
});
});
//--></script>
</head>
<body>
<form action="" method="get">
<input type="text" name="foo" value="Default value">
<a href="javascript:;" onclick="document.forms[0].submit()">Submit form</a>
</form>
</body>
</html>
内容总结
以上是互联网集市为您收集整理的关于(内联)javascript事件处理程序的jquery事件处理程序的执行顺序全部内容,希望文章能够帮你解决关于(内联)javascript事件处理程序的jquery事件处理程序的执行顺序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。