我无法在任何地方找到这个问题的答案,所以我在这里问。 我已经成功使用了像这样的fancybox:
$("#editor").fancybox({
'width' : 1000,
'height' : 600,
'autoDimensions' : false,
'autoScale' : false,
'ajax' : {
type : "POST",
data : varstring
}
})
现在的问题是,由于新的必需品,varstring必须包含应该打开fancybox窗口的每个链接的唯一数据。 我想象的方式是这样的:
function openEditor(elementid,sid,pid,gid){
$("#"+elementid).fancybox({
'width' : 1000,
'height' : 600,
'autoDimensions' : false,
'autoScale' : false,
'ajax' : {
type : "POST",
data : 'varstringnotimplemented'
}
});
//$("#"+elementid).trigger('click');
return false;
}
它不起作用,如果我取消注释触发器,我会得到:
uncaught exception: Syntax error, unrecognized expression: #
即使我设法让这件事工作也很难看,有没有更好的方法呢?
谢谢
答案 0 :(得分:3)
最好传递实际对象而不是id。
function openEditor(element,sid,pid,gid){
var $element = $(element);
var dataString = '??';
var ajaxSettings = {
type : "POST",
data : dataString
};
$element.fancybox({
'width' : 1000,
'height' : 600,
'autoDimensions' : false,
'autoScale' : false,
'ajax' : ajaxSettings
});
$element.trigger('click');
return false;
}
链接将是
<a href="javascript:void(0);" onclick="openEditor(this,'some','other','params')">text</a>
如果您通过href发送它,则无法传递实际对象,您可以通过onclick发送它