Featured post
c# - Serialize as object using json.net -
i want properties serialized 'objects' , not strings. e.g.
{"onclickhandler": onclickhandler, "onmouseout": onmouseouthandler}
the class def this:
public class handlers { public string onclickhandler; public string onmouseouthandler; }
currently comes out as:
handlers: {"onclickhandler": "onclickhandler", "onmouseout": "onmouseouthandler"}
as can guess, these client side event handlers , correspond javascript functions defined elsewhere. emitting them within quotes, not interpreted functions literal strings.
edit:
taking cue out of dave's answer, figured out way:
first little bit of scrubbing:
for (var handler in this.handlers) { if(window[this.handlers[handler]]) this.handlers[handler] = window[this.handlers[handler]]; };
and call jquery bind normally
$elem.bind(this.handlers);
accepting dave's answer closest.
as else mentioned, wouldn't valid json anyway (which precludes using json.parse(), among other potential drawbacks).
if event handler functions defined in global window scope, call them this:
// equivalent defining window.clickeventhandler or // window['clickeventhandler'] function variable. function clickeventhander() { // magic. } // valid json, using strings reference handler's name. var json = '{"onclickhandler": "clickeventhandler"}' // might using eval() or framework currently. var handlermappings = json.parse(json); window[handlermappings.onclickhandler]();
- Get link
- X
- Other Apps
Comments
Post a Comment