how javascript excutes callback with parameters -


i in trouble javascript‘s callback,my code seems simple:

        var =0;         (; < listsize+1; i++) {             var content = "content"+i;             $("#" + content).focus(function () {                 $("#" + content).keydown(check(new number(i)));                 $("#" + content).keyup(check(new number(i)));                 });         } 

where lisetsize=3 in test case , content html element's id

and callback function check(my_num) is:

        function check(my_num) {             var content = "content"+my_num;         } 

then try trigger function through keyboard input.

however,i got result content=content4 time via broswer's debugger,even though listening element content0

i have try anyway such $.extend({},i) $.extend(true,{},i)

it make no difference

now have no idea problem,how can pass value no reference callback function's parameter?

you're not declaring handlers correctly.

replace:

$("#" + content).keydown(check(new number(i))); $("#" + content).keyup(check(new number(i)));   

with:

$("#" + content).keydown(function(){check(new number(i));}); $("#" + content).keyup(function(){check(new number(i));});   

what need pass keyup , keydown, functions need called when keyboard events happen.

what were passing keyup , keydown, results of calling check(new number(i)).

also, since you're declaring these in loop, you'll want copy number new variable, in order reference current loop iteration's value:

$("#" + content).focus(function () {     var currentnumber = i;     $("#" + content).keydown(function(){check(currentnumber);});     $("#" + content).keyup(function(){check(currentnumber);});    }); 

Comments

Popular posts from this blog

angular - Is it possible to get native element for formControl? -

unity3d - Rotate an object to face an opposite direction -

javascript - Why jQuery Select box change event is now working? -