由onclick发起的jquerytools叠加

时间:2013-05-03 08:56:22

标签: jquery onclick overlay jquery-tools

我正在尝试使用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 ]

2 个答案:

答案 0 :(得分:0)

我认为它应该是$(this).overlay(...),因为这不是一个jquery对象,而是一个简单的dom对象,因此无法访问jquery函数/插件

答案 1 :(得分:0)

好的,我现在知道你遇到的问题是什么。好的,所以你需要为你用作叠加层的任何HTML元素明确设置一个id。然后像这样$("#findme").overlay({..});使用它你所指的this对象是你所在的函数的范围,而不是DOM元素。至少从我能说出的代码来看。