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

时间:2016-02-13 14:54:53

标签: javascript jquery fancybox-2

我有类似这样的链接

<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为:undefined

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

1 个答案:

答案 0 :(得分:1)

您的问题是函数returnCategory返回传递给它的值。因此,当您在fancybox之前调用它而不传递参数时,它将返回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 );
}