jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery.bind()事件在简单的Javascript对象上大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
将jQuery事件绑定到简单的非DOM Javascript对象可以吗?
var myobject = {};
$(myobject).bind("foobar",function() { alert("daa"); });

$(myobject).trigger("foobar");

有什么影响?

垃圾收集(没有新的引用创建,防止对象GCeded)
>对象属性(分配给对象的新属性)?
>表现

我注意到的一些事情

>事件名称不得与对象上的函数名冲突,例如你不能有init和event的函数名为init并触发它的相关性

解决方法

而不是使用jquery事件系统,我将实现一个使用 @L_801_8@方法模拟它.
var myClass = function(){
    this._callBACks = {};
};
myClass.prototype = {
  addEvent: function(evname,callBACk) {
    if (!this._callBACks[evname]) {
      this._callBACks[evname] = $.CallBACks();
    }
    this._callBACks[evname].add(callBACk);
  },removeEvent: function(evName) {
    if (!this._callBACks[evname]) {
      return;
    }
    this._callBACks[evname].remove();
    //Might need this too:
    //this._callBACks[evname] = null;
  },triggerEvent: function(evName) {
    if (this._callBACks[evname]) {
      this._callBACks[evname].fire();
    }
  }
};
var foo = new myClass();
foo.addEvent("foo",function(){
  console.log('foo');
});
foo.triggerEvent("foo");
foo.removeEvent("foo");
// event was removed,the below line won't do anything.
foo.triggerEvent("foo");

http://jsfiddle.net/kEuAP/

然而,为了回答你的问题,除了没有记录的事情之外,我看不到任何即时的问题,而且可能会将功能从版本更改为版本(尽管它在所有当前可用的版本1.2.6中都有效).

大佬总结

以上是大佬教程为你收集整理的jQuery.bind()事件在简单的Javascript对象上全部内容,希望文章能够帮你解决jQuery.bind()事件在简单的Javascript对象上所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。