I moved the trash button click function into the latter object, because I realized that with my previous code, notes created after
document.ready() was evaluated wouldn't have the event. This forced me to pass in my notes storage manager as an argument, since I need the trash function to get the parsed index from the note element id and delete the note. Before this, I had managed to keep all the objects completely separate from each other.I also ended up creating an object which encapsulates all the UI behavior coded so far, a ui manager. I'm not too comfortable with this style of programming, so I don't know if I'm missing a better way to go about this. It's essentialy just a hash with two keys mapped to each specific UI object. Then, a user of the object can do
ui.note_input and ui.note_disp to get the two specific objects. It might not even be worth making a full constructor function for this, and instead just setting it up in the document.ready function.I found it interesting that this line works without me having to encapsulate
trash_click_fn in an anonymous function as would be necessary if creating an object. I'm still not sure why javascript requires encapsulation, for example,
function encapsulating_function () {
var pre_defined_function = ...
return {
bad_func: pre_defined_function,
good_func: function () { pre_defined_function },
better_func: function () { pre_defined_function.apply(this, arguments) }
}
}
Actually, what I just wrote is wrong. I just tested it, and #bad_func and #better_func give the user access to pre_defined_function, while good_func returns undefined. I'm so confused :S
I also did a minor css change and added the property
-moz-user-select: none; to the header class. This nicely applies to all sub-elements within the header, and so it prevents users from highlighting the app title 'Notes' or the '-' on the input toggle button by long-pressing.
No comments:
Post a Comment