Friday, July 30, 2010

Use JavaScript comment-urls instead of the traditional void(0) method

The longstanding compromise, between reducing inline JavaScript and preserving accessibility, has been to use "javascript:void(0)" in link hrefs and form-element actions. These elements and attributes are the hardened fall-back to DOM Level 2 events, and (unlike myself) many believe something must be there. Well the ubiquitous technique has a successor that is new to me. I'm no more excited about it's purpose, but glad something new has come along.

Share/Bookmark

Monday, July 26, 2010

Saving to buy things

Remember how your elders would tell you to save in order to save? As in, "this money should never be spent"? Reality check: that's hard to do. Sure, I save money (all I can); I even save to save it. But then I need (ok, want) to buy something, and there goes my savings. That's normal, but the problem is I never spend my money on the reason I'm saving my money.

Share/Bookmark

Friday, July 23, 2010

Inferring node placement via special sourceIndex values

I needed to know whether a node was in the DOM. Figuring there was a native property or method towards this end, I scoured Mozilla's documentation but could find nothing. Then Microsoft (yes, them) offered hope with Internet Explorer's sourceIndex property:
Retrieves the ordinal position of the object, in source order, as the object appears in the document's all collection.

Share/Bookmark

Monday, July 19, 2010

w3c browsers fire bubble listeners before capture listeners

In w3c browsers, the event object's eventPhase property may indicate when it is in capture or bubble mode with a 1 or 3, respectively. A value of 2 indicates that the event object is "at" or processing the target node. However, when the eventPhase is 2, the event's mode is fuzzy.

Share/Bookmark

Wednesday, July 14, 2010

Internet Explorer doesn't bubble click events to the window

This is a simple one. I put some sample code on jsbin.com to show how IE doesn't bubble click events to the window, while w3c browsers do. This is important, because I would normally think to use the window as a "global event listener", not the document. Yeah, I learned this one the hard way.


Share/Bookmark

Debug easier by naming your closures

I was profiling some code when I noticed that several routines were listed as "(?)()" in Firebug, and "JScript anonymous function" in MS's Visual Studio. This proved frustrating, as recognizing my closures were critical to evaluating my code - I couldn't tell which were performing well, let alone executing.


Share/Bookmark

Internet Explorer sanitizes events between nodes

Events are hard in IE. That is just a fact.

I'm not here to gripe about how IE's event object doesn't adhere to standards, nor offers alternatives. Really, I'm not. This is actually a surprising discovery that has less to do with the standard IE/MS diatribe, and more to do with a unique aspect of their event object.

Share/Bookmark

Try, try again

I've failed miserably at blogging before. Blogging had been a confronting exercise, where I had to impress my readers with coherent arguments and razor sharp wit. Perhaps that has always been the problem, in all my writings. There was a time, when I would take hours to write an email. It had all the burden of a delicate surgery - the patient being a relationship.

This time, I plan to write short posts. Indeed, twitter may be the proper forum for my thoughts. I aspire to more, however, I'm alright with doing less. Even now, while at work, I don't have time to write this post. But I need to begin somewhere.


Share/Bookmark