首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery resize() api混淆

Jquery resize() api混淆
EN

Stack Overflow用户
提问于 2016-09-07 16:49:51
回答 2查看 59关注 0票数 2

下面的jquery代码显示了两个alert()框。为什么?

代码语言:javascript
复制
$(window).resize(function(){
alert("called-1"); 
});

$(window).bind("resize.test",function(){
  alert("called-2");
});

我的问题是,为什么Jquery在resize()触发器之后调用自定义事件(即事件名称以“resize”开头)?

jQuery版本: 1.12.4

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-07 16:57:30

您的示例代码为resize绑定了两个事件侦听器。第一个使用resize()函数,第二个使用bind(),两者基本相同。第三种选择是使用on()

惟一的区别是您为第二个侦听器提供了一个名为testnamespace,在event namenamespace之间用点(.)分隔。但这仍然是一个resize事件侦听器,而不是自定义事件!

命名空间可帮助您对事件侦听器进行分隔或分组。例如,您可以删除特定的监听程序:

代码语言:javascript
复制
$(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");
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Official event.namespace doc.

票数 2
EN

Stack Overflow用户

发布于 2016-09-07 16:55:53

当触发resize事件时,它将开始处理您绑定到它的所有操作。

您可以将任意多个函数绑定到一个事件。

jQuery事件声明(resize.whatevername)允许您提供一个名称空间,以便稍后解除绑定:

代码语言:javascript
复制
$(window).unbind('resize.test')

但它仍然绑定到resize事件

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39365292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档