jquery 在 html attr 中添加函数回调以在其他事件中调用
jquery add function call back in html attr to call in other event
我有link这样
<a href="#" class="open_popup" data-callback="after_close_popup_do">Open popup</a>
我在 jquery
中有此代码
function after_close_popup_do(obj , list){
console.log( "obj =>"+obj+" && List =>"+list );
}
$("a.open_popup").click(function(){
$(this).addClass("shown");
$("#popup").attr("data-callback" , $(this).attr("data-callback")) ;
return false;
});
当他在弹出窗口中完成操作并单击完成按钮时
$("#popup a.finish_popup").click(function(){
var callback = $("#popup").attr("data-callback");
var o = $("#target_div") ;
var list = {"items"=>{"a":"55","b":33}} ;
// I shoud here use the callback function
if( typeof window[callback] !== "function" ) {
console.log( "your function not working" ) ;
}else{
window[c]( list , o ) ; // We Called your function
console.log( "your function work fine" ) ;
}
}) ;
如何在这段代码中使用我的自定义函数作为回调调用??
谢谢
不要尝试以这种方式查找函数名称。相反,使用您自己的对象来跟踪函数:
var callbacks = {
after_close_popup_do: function(obj , list){
console.log( "obj =>"+obj+" && List =>"+list );
},
...
};
然后在这个对象中查找而不是 window
:
$("#popup a.finish_popup").click(function(){
var callback = $("#popup").attr("data-callback");
var o = $("#target_div") ;
var list = {"items"=>{"a":"55","b":33}} ;
// I shoud here use the callback function
if( typeof callbacks[callback] !== "function" ) {
console.log( "your function not working" ) ;
} else {
callbacks[callback]( list , o ) ; // We Called your function
console.log( "your function work fine" ) ;
}
});
这将允许您使用本地功能;您的原始代码需要在全局上下文中定义函数,以便将它们添加到 window
.
我有link这样
<a href="#" class="open_popup" data-callback="after_close_popup_do">Open popup</a>
我在 jquery
中有此代码function after_close_popup_do(obj , list){
console.log( "obj =>"+obj+" && List =>"+list );
}
$("a.open_popup").click(function(){
$(this).addClass("shown");
$("#popup").attr("data-callback" , $(this).attr("data-callback")) ;
return false;
});
当他在弹出窗口中完成操作并单击完成按钮时
$("#popup a.finish_popup").click(function(){
var callback = $("#popup").attr("data-callback");
var o = $("#target_div") ;
var list = {"items"=>{"a":"55","b":33}} ;
// I shoud here use the callback function
if( typeof window[callback] !== "function" ) {
console.log( "your function not working" ) ;
}else{
window[c]( list , o ) ; // We Called your function
console.log( "your function work fine" ) ;
}
}) ;
如何在这段代码中使用我的自定义函数作为回调调用??
谢谢
不要尝试以这种方式查找函数名称。相反,使用您自己的对象来跟踪函数:
var callbacks = {
after_close_popup_do: function(obj , list){
console.log( "obj =>"+obj+" && List =>"+list );
},
...
};
然后在这个对象中查找而不是 window
:
$("#popup a.finish_popup").click(function(){
var callback = $("#popup").attr("data-callback");
var o = $("#target_div") ;
var list = {"items"=>{"a":"55","b":33}} ;
// I shoud here use the callback function
if( typeof callbacks[callback] !== "function" ) {
console.log( "your function not working" ) ;
} else {
callbacks[callback]( list , o ) ; // We Called your function
console.log( "your function work fine" ) ;
}
});
这将允许您使用本地功能;您的原始代码需要在全局上下文中定义函数,以便将它们添加到 window
.