簡體   English   中英

jquery:將參數傳遞給modal

[英]jquery: passing parameter to modal

我在表中有以下內容,每行重復一次:

<a <?php echo 'id="'.$id.'"'; ?> class="custom-dialog-btn btn btn-small">
   <i class="icon-trash"></i>
</a>

其中id對於每一行是不同的,因為它是從數據庫中的表中獲取的,它是主鍵。

然后,我使用了以下jQuery代碼:

$(".custom-dialog-btn").bind("click", function (event) {
                $("#mws-jui-dialog").dialog("option", {
                    modal: false
                }).dialog("open");
                event.preventDefault();
            });

      $("#mws-jui-dialog").dialog({
        autoOpen: false,
        title: "Alert",
        modal: true,
        width: "640",
        buttons: [{
            text: "NO",
        id: "cancel_button",
            click: function () {
                $(this).dialog("close");
            }
        },
     {
        text: "OK",
        id: "confirm_button",
            click: function () {
                myremovefuntion(id); // I need the id
        }}
    ]
    });

指的是對話框:

<div id="mws-jui-dialog">
    <div class="mws-dialog-inner">
    <h2>Are you sure you want to delete?</h2>
    </div>
</div>

我怎樣才能將id傳遞給模態?

您可以將數據屬性附加到對話框div,如下所示;

$('a').click(function (e) {
    e.preventDefault();
    $("#your_dialog").data('mycustomdata', $(this).prop('id')).dialog('open');
});

然后像這樣回顧它

    $("#your_dialog").dialog({
        autoOpen: false,
        resizable: false,
        height:200,
        modal: true,
        buttons: {
            Cancel: function() {
                $(this).dialog('close');
            },
            'Delete': function() {
                $(this).dialog('close');
                var mydata = $(this).data('mycustomdata'); // = gives you the id of anchor element
// some delete logic
            }
        }
    });

使用以下代碼獲取id:

var id = $(this).prop("id");

並且您將獲得您點擊的元素的ID。

雖然Emin的答案肯定有效,但我想知道這個fabuolus jQuery UI庫是否具有類似於JavaScript的本機confirm()方法的對話風格? 或者可能傳遞回調函數? 這將消除包含業務邏輯的對話代碼的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM