jQuery使用.of()删除事件处理程序时出现的问题
jQuery Problems with removing event handler with .off()
我曾尝试删除带有.off()
的事件处理程序,但它不起作用。
我想从一个特定的输入中删除所有事件处理程序:
<input type="file" id="file_upload" name="file_upload" size="50" />
以下是我尝试过的:
$('#form').on('keyup change', ':input', function() {
registerChange();
});
$('#form input[name=file_upload]').off();
$('#file_upload').off();
您可以为文件上传按钮使用not
选择器
$('#form').on('keyup change', 'input:not([name=file_upload])', function() {
registerChange($(this).val());
});
function registerChange(value) {
// notice that typing into the upload textbox does not log anything to the console
console.log(value);
}
$('#form').on('click', 'input[name=file_upload]', function () {
alert('In Click Event Handler, Now Removing Myself');
// here is how you can remove an event handler
$('#form').off('click', 'input[name=file_upload]');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="form">
<input type="text" />
<input type="text" />
<!-- just changeing this to a textbox for demo -->
<input type="text" id="file_upload" name="file_upload" size="50" value="Choose file" />
</form>
打开控制台窗口(chrome中的CTRL+SHIFT+J),然后在所有文本框中键入。请注意,只有前两个文本框是如何写入控制台的。还要注意,最后一个文本框定义了一个点击处理程序,然后将其删除,这就是为什么警报只显示一次的原因。
您正在将事件绑定到表单元素。所以为了删除它,你需要再次使用表单标签:
// bind delegated events to form element
$('#form').on('keyup change', ':input', function () {
registerChange();
});
// remove events later
$('#form').off();
您可能对事件委派感到困惑:on
方法的这种用法将事件附加到form元素,在从子级:input
冒泡后捕获这些事件。
试试这个:
$('#file_upload').off('keyup change', ':input', function()
{
registerChange();
});
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 在我的SPA应用程序中集成Facebook共享的问题
- 在AJAX回调和呈现PIXIJS之间处理程序流时遇到了问题
- 在循环中附加事件处理程序时出现浏览器性能问题
- node.js应用程序中的async.js问题
- React Rails应用程序中动态子项的密钥分配问题
- jQuery,引导程序下拉列表问题
- 引导程序导航栏崩溃问题
- jQuery使用.of()删除事件处理程序时出现的问题
- Selebyun爬网程序超时问题C#
- Angular 1.X,webpack和ngtemplate加载程序问题
- 在我的Rails应用程序中使用Stripe对卡充电时出现问题
- 离子框架移动应用程序性能问题
- 如何将 camanjs 用于我的 wix 应用程序绕过跨域问题
- 聊天应用程序的潜在问题
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- MongoDB 2.0.0 驱动程序,按 ID 检索记录时出现问题
- 在 Chrome 扩展程序中将鼠标悬停在广告上使用时遇到问题
- 在Facebook应用程序中弹出时遇到问题