0

確認ダイアログにjQuerytools オーバーレイを使用しようとしています。オーバーレイを呼び出す「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 is not a function」が返されます。誰かがこれを理解するのを手伝ってくれますか?

次の結果が得られることを期待しています(要素2を削除したいとしましょう)

Confirmation - Delete Campaign
-------------------------------------------------------------
Are you sure you want to permanently delete this data?

    myListElement-2

[ Yes ]     [ No ]
4

2 に答える 2

0

これはjqueryオブジェクトではなく単純なdomオブジェクトであるため、jquery関数/プラグインにアクセスできないため、代わりに $(this).overlay(...) にする必要があると思います

于 2013-05-03T10:15:10.053 に答える
0

わかりましたので、あなたが抱えている問題が何であるかがわかりました。わかりましたので、オーバーレイとして使用している HTML 要素の ID を明示的に設定する必要があります。次に、このように使用します。参照してい$("#findme").overlay({..});thisオブジェクトは、DOM要素ではなく、関数のスコープでした。少なくとも私があなたのコードについて言えることから。

于 2013-05-03T11:14:58.913 に答える