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
Share:
21,862
YoniGeek
Author by

YoniGeek

I'm a IxD and full-stack Developer based in Malmö, Sweden

Updated on October 12, 2020

Comments

  • YoniGeek
    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
    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
    acme almost 12 years
    You 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
    superluminary almost 12 years
    Also worth noting that since you have an HTML5 doctype, type="text/javascript" is optional.