admin管理员组

文章数量:1026989

I read some code recently that does something like this:

bob = {'name': 'Bob Smith', 'rank': 7};
$(bob).bind("nameChanged", function () { /* ... */});
// ...
$(bob).trigger("nameChanged");

This appears to work.

But I can't find anything in the jQuery documentation or source about calling the jQuery constructor with an object that is neither a selector nor a DOM node. So my question is, is this a supported use, or is it essentially working by accident?

If you wanted to use an event-driven model for your Model or View objects in JavaScript, how would you do it?

I read some code recently that does something like this:

bob = {'name': 'Bob Smith', 'rank': 7};
$(bob).bind("nameChanged", function () { /* ... */});
// ...
$(bob).trigger("nameChanged");

This appears to work.

But I can't find anything in the jQuery documentation or source about calling the jQuery constructor with an object that is neither a selector nor a DOM node. So my question is, is this a supported use, or is it essentially working by accident?

If you wanted to use an event-driven model for your Model or View objects in JavaScript, how would you do it?

Share Improve this question asked Mar 23, 2011 at 20:28 keturnketurn 4,7983 gold badges32 silver badges40 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

What happens is that it just wraps that object in a jQuery wrapper. It then applies a callback to a new property on that object and then triggers it.

It's an odd way of doing things, but perfectly acceptable.

I read some code recently that does something like this:

bob = {'name': 'Bob Smith', 'rank': 7};
$(bob).bind("nameChanged", function () { /* ... */});
// ...
$(bob).trigger("nameChanged");

This appears to work.

But I can't find anything in the jQuery documentation or source about calling the jQuery constructor with an object that is neither a selector nor a DOM node. So my question is, is this a supported use, or is it essentially working by accident?

If you wanted to use an event-driven model for your Model or View objects in JavaScript, how would you do it?

I read some code recently that does something like this:

bob = {'name': 'Bob Smith', 'rank': 7};
$(bob).bind("nameChanged", function () { /* ... */});
// ...
$(bob).trigger("nameChanged");

This appears to work.

But I can't find anything in the jQuery documentation or source about calling the jQuery constructor with an object that is neither a selector nor a DOM node. So my question is, is this a supported use, or is it essentially working by accident?

If you wanted to use an event-driven model for your Model or View objects in JavaScript, how would you do it?

Share Improve this question asked Mar 23, 2011 at 20:28 keturnketurn 4,7983 gold badges32 silver badges40 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

What happens is that it just wraps that object in a jQuery wrapper. It then applies a callback to a new property on that object and then triggers it.

It's an odd way of doing things, but perfectly acceptable.

本文标签: javascriptjQuery custom events on nonDOM objectsStack Overflow