Can*_*var 8 javascript jquery jquery-events
我几分钟前尝试回答这个问题并为自己准备了这个例子:
<script>
function trialMethod()
{
alert('On Submit Run!'); return true;
}
function trialMethod2()
{
alert('On Submit Run trialMethod2!'); return true;
}
</script>
<form id="aspnetForm" onsubmit="trialMethod();">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
为什么第一个解除绑定不起作用:
<input type="button" id="btnTrial1" value="UNBIND 1"
onclick="$('#aspnetForm').unbind('submit', trialMethod);">
Run Code Online (Sandbox Code Playgroud)
但是这个适用于trialMethod2方法:
<input type="button" id="btnTrial2" value="UNBIND 2"
onclick="$('#aspnetForm').bind('submit', trialMethod2).unbind('submit', trialMethod2);">
Run Code Online (Sandbox Code Playgroud)
Raf*_*ael 12
由于jQuery的事件模型,第一个unbind场景不起作用.jQuery将每个事件处理函数存储在一个数组中,您可以通过$("#foo").data('events')访问它.unbind函数仅查找此数组中的给定函数.所以,你只能取消绑定()使用bind()添加的事件处理程序
如果他们使用jQuery,没有人应该将他们的标记与他们的交互代码混合.
像这样在页面中添加一些javascript:
$(function() {
$('#aspnetForm').bind('submit',function() {
trialMethod();
});
$('#btnTrial2').bind('click',function() {
$('#aspnetForm').unbind('submit');
});
$('#btnTrial2').bind('click',function() {
$('#aspnetForm').bind('submit', trialMethod2).unbind('submit');
});
});
Run Code Online (Sandbox Code Playgroud)
现在,有了这个...现在一切都应该工作(即使你现在将双重绑定,#aspnetForm然后在按下第二个按钮时完全取消绑定).问题是这种形式从来没有真正"束缚"开始.您可以取消绑定onsubmit标记中的参数.
| 归档时间: |
|
| 查看次数: |
18992 次 |
| 最近记录: |