如何在fancybox函数

时间:2015-07-03 12:41:39

标签: javascript jquery ajax

我使用jquery和Spring MVC在我的应用程序中使用$ .fancybox()函数。我有以下功能,我正在尝试使用fancybox打开一个模型窗口,将一些数据显示为弹出窗口。

$(document).on('click', '#versionBtn' ,function (event){
    $(this).toggleClass('selected');
    webContentId = $(".selected").closest("div").attr("id");
    console.log('The selected webContentId  : '+webContentId );
    $(this).toggleClass('selected');
    $.fancybox({
        type: 'ajax',
        href : '${rc.getContextPath()}/module/simplewebcontent/list-webcontent-versions?webContentDefinitionId=webContentId',
        autoSize : false,
        closeClick  : false,
        closeBtn : true,
        fitToView : true,
        autoCenter : true               
    });     

});

现在,当调用click函数时,变量webContentId的值未在url中设置。 有什么办法可以在网址中获取该变量的值....

3 个答案:

答案 0 :(得分:0)

您可以简单地将此值添加(连接)到地址字符串,它将作为GET请求发送到服务器

href : '${rc.getContextPath()}/module/simplewebcontent/list-webcontent-versions?webContentDefinitionId=' + webContentId,

答案 1 :(得分:0)

试试这样:

$.fancybox({
    type: 'ajax',
    href : '${rc.getContextPath()}/module/simplewebcontent/list-webcontent-versions?webContentDefinitionId='+webContentId,
    autoSize : false,
    closeClick  : false,
    closeBtn : true,
    fitToView : true,
    autoCenter : true               
});

您希望javascript变量webContentId的值在网址中传递,而不是字符串' webContentId'

祝你好运

答案 2 :(得分:0)

基本解决方案与其他答案相同,但我更喜欢这种方法,尤其是多个参数:

$.fancybox({
    type: 'ajax',
    href:  '${rc.getContextPath()}/module/simplewebcontent/list-webcontent-versions?' + $.param({
        webContentDefinitionId: webContentId 
    }),
    autoSize : false,
    closeClick  : false,
    closeBtn : true,
    fitToView : true,
    autoCenter : true
});

如果需要,jQuery param函数会为您执行必要的转义(现在,情况并非如此)。