jQuery特殊事件API
jQuery special event API
我正在创建一个特殊事件,正如Brandon Aaron在这里的文章中所描述的那样此事件需要在窗口大小调整时触发。
$.event.special.myevent = {
setup: function () {
$(window).bind("resize", $.event.special.myevent.handler);
},
teardown: function () {
$(window).unbind("resize", $.event.special.myevent.handler);
},
handler: function (e) {
var $this = $(this);
//some other rulles
console.log("handler function");
e.type = "myevent";
jQuery.event.handle.apply(this, arguments);
}
}
绑定事件:
$("#myDiv1").bind("myevent", function () {
alert("my event sub");
})
问题:$("#myDiv1")
没有接收到事件。这似乎与在设置I中触发$(window)
而不是$(this)
有关。
问题是我怎么能有一个事件,背上发生在其他对象上的事件。
您可以使用$.proxy
来更改函数内部的this
引用:
setup: function () {
$(window).on("resize.myevent", $.proxy($.event.special.myevent.handler, this));
},
teardown: function () {
$(window).off("resize.myevent");
},
小提琴
为了更容易地删除处理程序,我使用了事件名称空间,因此您不需要引用由$.proxy
生成的函数。
相关文章:
- 如何在多承诺链中处理谷歌地图API V3事件
- 如何通过bxSlider回调api处理事件
- 在JQuery中使用谷歌地图Api事件/侦听器
- YouTube播放器API全屏事件
- 如何在Slack API中与事件交互
- 删除Google Calander API中的事件
- 正在更新API事件上的innerHTML
- 调查Monkey API事件
- 为什么其中一个侦听器适用于媒体 API 事件,而另一个则不适用于媒体 API 事件
- 传单api事件侦听器参数访问
- 为什么某些Facebook Graph API事件字段未定义
- YouTube iframe API事件在Firefox中不工作
- DOM Events API:事件委托和stopPropagation
- GMAPS API事件处理引脚点
- Javascript的onLoad File api事件没有触发
- Yandex映射api -事件处理程序只执行一次
- 当src改变时,传递youtube iframe api事件onstatechange
- HTML5文件阅读器API:事件'加载'不会着火
- 此处映射API事件延迟
- 更改Facebook API事件订阅仅在单击某个“喜欢”按钮时运行