var clickable = ApplyClickableLinkToClass($j(".rc_blueBtn"));
setTimeout(clickable, 1000);
But if I call it like this there is no script error pop up :
ApplyClickableLinkToClass($j(".rc_blueBtn"));
The method is as follows :
ApplyClickableLinkToClass = function(selectedElements) {
// Go through each of the passed in selections and try to apply a link to them
$.each(selectedElements, function() {
var linkElement = $("a:first:not(.do-not-apply-clickable-link)", $(this));
var link = linkElement.attr("href");
if (!IsNullEmptyOrUndefined(link)) {
$(this).click(function(firstLink) {
var divToLink = firstLink;
return function() {
$(divToLink).unbind('click');
if (divToLink.attr("target") != "_blank") {
window.location = link;
return false;
}
};
}(linkElement));
}
});
}
The error is just a js popup "An error has occured in the Script on this page"
-
If you use FireBug (FireFox) or IE 9's F12 you can get better diagnostics.n8wrl– n8wrl2012年03月15日 21:04:28 +00:00Commented Mar 15, 2012 at 21:04
2 Answers 2
Your clickable variable is set to the return value from calling the ApplyClickableLinkToClass function, which is undefined. So by passing clickable to setTimeout you're passing undefined.
Try this:
setTimeout(function() {
ApplyClickableLinkToClass($j(".rc_blueBtn"))
}, 1000);
// OR
var clickable = function() {
ApplyClickableLinkToClass($j(".rc_blueBtn"))
}
setTimeout(clicable, 1000);
1 Comment
setTimeout() expects the first argument to be a function, or the source code you want to execute, as a string (this version is generally deprecated). But you're passing in the result of your ApplyClickableLinkToClass() function, not the function itself.
You want something like:
var clickable = function() {
ApplyClickableLinkToClass($j(".rc_blueBtn"));
};
setTimeout(clickable, 1000);