我正在尝试使用jQuerytools overlay进行确认对话。我有问题'onclick'功能来调用叠加层。
HTML
<!-- list element -->
<ul>
<li id="item1">
<div class="listName">myListElement-1</div>
<div class="listCtrlr"><span onclick="delItem(1, 'myListElement-1')" rel="#deldlg">delete</span></div>
</li>
<li id="item2">
<div class="listName">myListElement-2</div>
<div class="listCtrlr"><span onclick="delItem(2, 'myListElement-2')" rel="#deldlg">delete</span></div>
</li>
<li id="item3">
<div class="listName">myListElement-3</div>
<div class="listCtrlr"><span onclick="delItem(3, 'myListElement-3')" rel="#deldlg">delete</span></div>
</li>
</ul>
<!-- overlay dialogue -->
<div id="deldlg" class="modd">
<h5>Confirmation - Delete Campaign</h5>
<div class="ctn">
<p id="dq">Are you sure you want to permanently delete this data?</p>
<p id="di"></p>
<input type="button" value="Yes" id="delsubmit" class="brButton s grdRed">
<input type="button" value="No" class="brButton s close">
</div>
</div>
的JavaScript
function delItem(iid, iname) {
var trigger = this;
trigger.overlay({
fixed: false,
closeOnClick: false,
mask: {color:'#660000', loadSpeed:100, opacity:0.9},
onBeforeLoad:function() {
jQuery('#di').html(iname);
jQuery('#delsubmit').attr('onclick', 'del_camp('+iid+')');
}
});
}
当我使用上面的脚本时,它返回' trigger.overlay不是函数 '。有人可以帮我解决这个问题吗?
我希望得到以下结果(假设我要删除元素-2)
Confirmation - Delete Campaign
-------------------------------------------------------------
Are you sure you want to permanently delete this data?
myListElement-2
[ Yes ] [ No ]
答案 0 :(得分:0)
我认为它应该是$(this).overlay(...),因为这不是一个jquery对象,而是一个简单的dom对象,因此无法访问jquery函数/插件
答案 1 :(得分:0)
好的,我现在知道你遇到的问题是什么。好的,所以你需要为你用作叠加层的任何HTML元素明确设置一个id。然后像这样$("#findme").overlay({..});
使用它你所指的this
对象是你所在的函数的范围,而不是DOM元素。至少从我能说出的代码来看。