Firebug doesn’t display my javascript? can't find the error
21,862
Solution 1
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.
Solution 2
In my Case I have opened firebug in other tab, So it was showing me this error.
- Solution : I have closed one tab and refreshed the page. and it was working :)
Solution 3
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
Author by
YoniGeek
I'm a IxD and full-stack Developer based in Malmö, Sweden
Updated on October 12, 2020Comments
-
YoniGeek over 3 years
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>
-
YoniGeek almost 12 years@acne hey it works! thanks for dat! funny this is an syntax-error that firebug should point out...one more thing why Ican't see any in the browser? P should be append to the body uhn?
-
acme almost 12 yearsYou must use
<p>
when creating elements, otherwise it's just a plain selector for jquery. jQuery searches for an existing p element and tries to append that to the body. Because there does not exist one, nothing gets appended. I updated my answer. -
superluminary almost 12 yearsAlso worth noting that since you have an HTML5 doctype, type="text/javascript" is optional.