作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将事件分配给变量,因为我无法删除具有不同回调的 $('body').on('keyup')
事件(对不起我的英语)。这不可能吗?
function test_1()
{
$('body').on('keyup', function(e)
{
//do stuff 1
}
}
function test_2()
{
$('body').on('keyup', function(e)
{
//do stuff 2
}
}
test_1();
test_2();
现在我想删除在按键时执行“do stuff 2”的事件监听器。
我想要类似的东西:
var handler_1;
var handler_2;
function test_1()
{
handler_1 = $('body').on('keyup', function(e)
{
//do stuff 1
}
}
function test_2()
{
handler_2 = $('body').on('keyup', function(e)
{
//do stuff 2
}
}
function delete()
{
handler_2.off();
}
test_1();
test_2();
然后我执行delete(),我希望handler_2将关闭该事件。但是当我按任意键时,“do stuff 1”必须起作用。
最佳答案
我会使用 namespace 事件。这允许您为事件分配一个名称,以便稍后可以轻松删除它。另外,当您将结果分配给 handler_1
时,您实际上只是返回一个表示 body 元素的 jquery 对象,因此它相当于 $('body')
,所以我认为没有必要。
function test_1()
{
$('body').on('keyup.fn1', function(e)
{
//do stuff 1
}
}
function test_2()
{
$('body').on('keyup.fn2', function(e)
{
//do stuff 2
}
}
function delete()
{
$('body').off('keyup.fn2');
}
test_1();
test_2();
关于javascript - 如何将事件分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560486/
我是一名优秀的程序员,十分优秀!