我使用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中设置。
有什么办法可以在网址中获取该变量的值....
答案 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
函数会为您执行必要的转义(现在,情况并非如此)。