Reputation: 4093
well I want to debug some script with Firebug, (cause I can't see anything in the browser window) but when I click the script tab in Firefox it gives me the error message:
If tags have a "type" attribute, it should equal "text/javascript" or "application/javascript". Also scripts must be parsable (syntactically correct).
What am I doing wrong?
Here's my code:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script src="jquery-1.7.1.js"></script>
<script type="text/javascript">
$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
var createFunction = function(i) {
return function() { alert(i); };
};
for (var i=0; i<5; i++) {
$('p').appendTo('body').on("click", createFunction(i));
}
})();
</script>
</body>
</html>
Upvotes: 7
Views: 21871
Reputation: 6278
In my Case I have opened firebug in other tab, So it was showing me this error.
Upvotes: 1
Reputation: 14856
You must leave out the last parenthesis, I guess the code should run on dom ready?
<script type="text/javascript">
$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
var createFunction = function(i) {
return function() { alert(i); };
};
for (var i=0; i<5; i++) {
$('<p>').appendTo('body').on("click", createFunction(i));
}
});
</script>
See here for how to make code running on dom load with jquery.
Upvotes: 4
Reputation: 48813
Remove parenthesis after })
:
$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
var createFunction = function(i) {
return function() { alert(i); };
};
for (var i=0; i<5; i++) {
$('p').appendTo('body').on("click", createFunction(i));
}
}); //here is the modification
Upvotes: 1