jQuery代码显示两个alert()框。为什么?我的问题是为什么jquery在resize()触发器后调用自定义事件(即事件名称以“resize”开头)?jquery resize()api confusion
jQuery的版本:1.12.4
jQuery代码显示两个alert()框。为什么?我的问题是为什么jquery在resize()触发器后调用自定义事件(即事件名称以“resize”开头)?jquery resize()api confusion
jQuery的版本:1.12.4
你的示例代码绑定了两个事件听众resize
。第一个使用resize()
函数,第二个使用bind()
,两者基本相同。第三种选择是使用on()
。
唯一的区别是,你给了第二听者namespace
称为test
,通过event name
和namespace
之间的点(.
)分离。但是这仍然是一个resize
事件监听器,而不是一个自定义事件!
命名空间可以帮助您分离或分组事件侦听器。例如,您可以删除特定的听众:
$(window).on("resize", function() {
console.log("- resize");
});
$(window).on("resize.test", function() {
console.log("- resize.test");
});
// trigger resize
console.log("first trigger:");
$(window).trigger("resize");
// remove all listeners with '.test' namespace
$(window).off(".test"); // or more specific: $(window).off("resize.test");
// trigger resize again
console.log("second trigger:");
$(window).trigger("resize");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
当触发事件resize
,它会开始处理所有已绑定到它的行动。
您可以根据需要绑定尽可能多的功能。
jQuery的事件声明(resize.whatevername
),可以提供一个命名空间,以便稍后解除绑定:
$(window).unbind('resize.test')
但它仍然是绑定到resize
事件
这是** **不是一个自定义事件! – eisbehr