如何在 fancybox 2 中获取 javascript 函数的返回值?

how to get javascript function's returned value in fancybox2?

我有一个link像这样的东西

<a onclick="returnCategory($(this).attr('data-category-id'))" data-category-id="15">Tablets</a>

使用onclick调用的函数是

function returnCategory(categoryId) {
    return categoryId;
}

我的 fancybox 代码是

function showPopup() {
    $.fancybox({
        href: 'popup.php',
        type: 'ajax',
        width: '90%',
        height: '100%',
        beforeClose : function () {
            categoryId = returnCategory();
            alert("Required category Id is :" + categoryId);
        },
    });
}

单击上述代码的锚点会生成一个警报“所需的类别 ID 为:未定义

我的问题是如何在fancybox beforeClose中提醒returnCategory()函数返回的值? 我不想在这里使用全局变量。

您的问题是函数 returnCategory return 是传递给它的值。因此,当您在 fancybox beforeClose 事件中调用它而不传递参数时,它将 return undefined。如果你真的不能使用全局变量,一种方法是使用像这样的隐藏输入

<input type="hidden" id="selectedCategory"/>

和javascript

function returnCategory(categoryId) {
var inputCategory = document.getElementById("selectedCategory");
inputCategory.value = categoryId;
}

beforeClose:function(){

selectedCategoryId = document.getElementById("selectedCategory").value;
alert("Required category Id is :" + selectedCategoryId );
}