Я вызываю функцию, как показано ниже. Здесь я также передаю функцию обратного вызова, которая должна быть вызвана только после того, как конкретная форма не будет представлена до этого.Передача функции обратного вызова в качестве параметра
<div onClick="myNamespace.openDialog(par1,par2,myNamespace.callback(myNamespace.cb,'p1','p2'))">OPEN DIALOG</div>
var myNamespace = myNamespace || {};
myNamespace={
return{
cb:function(p1,p2){alert(p1+" cb "+p2);},
callback:function(f){f(arguments[1],arguments[2]);},
openDialog:function(p1,p2,f){
// aboutBizzNs.cb should be called here only after form submit
}
}
}();
Проблема заключается alert(p1+" cb "+p2);
вызывается только после того, как OPEN DIALOG
нажата. Это не должно быть так. Его нужно называть только тогда, когда я хочу. В чем проблема
после прохождения через ваши аргументы и детали, я обнаружил, что передача 'функцию() {myNamespace.cb ('p1 ',' p2 ')} 'как аргумент' openDialog (....., f) ', а затем вызвать' f() 'внутри' openDialog() 'было достаточно для меня. Спасибо – manish
@Manish You' приветствуется! Закрытие (и функции как первоклассные значения) немного сложнее освоить, но как только вы их освоите, вы являетесь мастером JavaScript ;-) – user2864740