是否可以确定元素是否具有单击处理程序,或更改处理程序,或使用jQuery绑定到它的任何类型的事件处理程序?
此外,是否可以确定它对于给定类型的事件有多少点击处理程序(或任何类型的事件处理程序),以及事件处理程序中有哪些功能?
假设我有一个Web应用程序,其中有一个页面可能包含4个脚本块 - 我写的脚本可以在其中一个块中找到,但我不知道哪个是由控制器处理的.
我将一些onclick事件绑定到一个按钮,但我发现它们有时按照我没想到的顺序执行.
有没有办法确保订单,或者你过去如何处理这个问题?
当多个事件处理程序绑定到一个元素时,如何确定首先触发哪一个?
<script>
$(function(){
$(".li").find('input').click(function(){alert('li>input');});
$(".li").click(function(){alert('li');});
$('input').click(function(){alert('input');});
});
</script>
</head>
<body>
<ul>
<li class="li"><input type="checkbox" /><span>Hello</span></li>
<li class="li"><input type="checkbox" /><span>Hello</span></li>
<li class="li"><input type="checkbox" /><span>Hello</span></li>
</ul>
</body>
Run Code Online (Sandbox Code Playgroud) 有没有办法确保您附加的事件处理程序是要执行的事件处理程序链中的最后一个?
我有一个事件处理程序,它通过ajax提交表单,但是稍后,在我附加了我的ajax提交处理程序之后,另一个处理程序附加到表单以执行验证逻辑.验证逻辑应该在ajax提交处理程序之前发生,但它不会因为它之后被绑定而发生.
有没有办法使它成为我的ajax提交处理程序始终是要执行的处理程序链中的最后一个处理程序,而不更改处理程序绑定的顺序?
Jquery绑定是惊人的,但我不知道绑定发生的顺序.我现在的问题是:
$(document.body).delegate('form', methods.checkForm);
$('form').bind('submit', methods.submitFormIfCheckedFormIsTrue);
methods.checkForm = function (e) {
if (!$(this).isVerified()) {
return false;
}
return true;
};
methods.submitFormIfCheckedFormIsTrue = function (e) {
e.preventDefault();
$.ajax("/submitForm", {
data:$(this).serialize(),
type:"post"
});
};
Run Code Online (Sandbox Code Playgroud)
这显然不是我正在使用的实际代码,但它非常接近.会发生什么,commitFormIfCheckedFormIsTrue函数在checkForm函数之前或期间触发,因此检查非常无用.我的黑客是将"已检查"类添加到表单中并检查表单是否在其他函数中具有该类...但是然后单击"提交",它会检查,然后您必须再次单击它以提交它如果一切顺利......这是迟钝的.
另一件关于这个问题很重要的事情是,由于无法改变的原因,我在应用程序中处于完全不同的部分.而且,它们是异步加载的.
我想知道的主要事情是...如何更改顺序,或以某种方式设置事件的优先级......
我有一个按钮,它有:
onclick例
<input id='b1' type='button' value='go' onclick='alert("0")';'/>
$("#b1").on('click',function (){alert('1');});
$("#b1").on('click',function (){alert('2');});
$("#b1").on('click',function (){alert('3');});
Run Code Online (Sandbox Code Playgroud)
它警告0,1,2,3.
但是如何onclick在"自定义索引"处插入新内容?
例如,让我们说我想在1,2的警报之间插入一个函数.
我怎样才能做到这一点 ?
ps:
控制内联onclick不是问题,我只是采取它attr并稍后执行它.对我来说问题是.on寄存器.我想过$.data("events")但它已被弃用,应仅用于调试建议.(也 - 它的语法已经改变).