javascript属性更改事件

jos*_*web 11 javascript jquery watch

我需要在每次更新/更改属性时触发事件,以使dom元素与模型上的属性值保持同步(我使用john resig的简单继承http://ejohn.org/blog/simple-javascript-继承/).这可以通过跨浏览器方式进行吗?在我看来,如果我可以包装任何函数js用于设置属性并使其触发事件,它可以工作,我只是不知道如何做到这一点.

Vot*_*ple 9

JavaScript不使用函数来设置属性.它们只是变量,设置它们不需要任何复杂的包装器.

但是,您可以使用函数来设置属性 - 您可以在支持类中的私有数据的语言中使用相同类型的getter/setter排列.这样,您的函数可以轻松运行已注册为回调的其他函数.使用jQuery,您甚至可以将它们作为事件来处理.

$(yourObject).bind('some-event-you-made-up', function() { 
    // This code will run whenever some-event-you-made-up is triggered on yourObject
});

// ... 

$(yourObject).trigger('some-event-you-made-up');
Run Code Online (Sandbox Code Playgroud)

  • 或者在ECMAScript 5中. (4认同)
  • 实际上,可以在Mozilla扩展的Javascript中为对象属性设置"getter"和"setter"函数. (3认同)