我有一个包含几个js文件的php项目。 其中一个js文件是一个弹出管理器。这是代码:
function openYesNoPopup(message, callback) {
$('.popupBtn').unbind();
var popup_top = "<div class = 'popup_top'></div>";
var popup_bottom = "<div class = 'popup_bottom'></div>";
var yesNoButtonsDiv = '<div class="popupBtnContainer"><button class="popupBtn" data-type="yes">Yes</button><button class="popupBtn">No</button></div>';
$.fancybox.open({
padding: 0,
content: message
});
$('.fancybox-skin').prepend(popup_top);
$('.fancybox-skin').append(popup_bottom);
$('.fancybox-outer').append(yesNoButtonsDiv);
$(document).on('click', '.popupBtn', function() {
if ($(this).data('type') === 'yes') {
callback;
}
$.fancybox.close();
});
}
问题是,我想要被激活的回调函数是未定义的。
任何人都可以帮助我做到这一点吗?
谢谢!
对openYesNoPopup的调用:
openYesNoPopup("Hello World",foo());
function foo(){
alert("bear");
}
出于某种原因,警报会在开始时显示......
答案 0 :(得分:1)
你必须真正称之为
if ($(this).data('type') === 'yes') {
callback();
}
但是在调用openYesNoPopup
功能时,您引用它,不将其称为
openYesNoPopup("Hello World",foo);