I\'m not quite sure if I\'m not using this in the correct scope or what, but I have a script that basically captures a link click and causes the page to fade out before goin
Use: $(this).attr
instead of this.attr
This forces it into the context of jQuery.
While Diodeus is correct that you need to wrap this
in a jQuery collection before using attr()
(it's a method of a jQuery collection, not of an HTMLElement
), you can just as well skip attr()
.
$("a").click(function(e){
var location;
e.preventDefault();
if ($.isFunction(this.onclick)) {
this.onclick.call(this, e);
} else {
location = this.href;
pageObj.linkLoad(location);
}
});
Note that I used the property (when an HTML document loads, attributes are usually preloaded into properties, with on_______
attributes being preloaded as methods. Also note that I used this.onclick.call()
rather than eval()
, setting the correct this
for onclick
methods, and ensuring access to the event object as an argument.