如何获取从中调用jquery对话框的元素Id

时间:2013-03-18 20:17:22

标签: javascript jquery

我正在使用jquery对话框在按钮点击时打开弹出窗口。

    <script>
        $(document).ready(function(){
            $("#dialog-form").dialog({
                autoOpen : false,
                height : 300,
                width : 350,
                modal : true,
                buttons : {
                    "Add" : function() {

                        $(this).dialog("close");
                    },
                    Cancel : function() {
                        $(this).dialog("close");
                    }
                },
                close : function() {
                    //if button1 is clicked 
                    alert("hello");
                   //if button2 is clicked
                   alert("bye");
                }
            });

        });
        function openWindow(){
            $("#dialog-form").dialog("open");
            }

    </script>
<button id="nameButton" onclick="openWindow()">click</button>
<button id="titleButton" onclick="openWindow()">click</button>

如何在jquery对话框中的close方法中获取按钮的id?

2 个答案:

答案 0 :(得分:1)

如果您要使用onclick属性,则需要将一些信息传递给该函数,以便您可以访问触发该事件的元素。

<button id="nameButton" onclick="openWindow(this)">click</button>
<button id="titleButton" onclick="openWindow(this)">click</button>

function openWindow(button){
    alert(button.id);
    $("#dialog-form").dialog("open");
}

但是,如果您改为给按钮一个类并使用jQuery绑定事件,那么它将“更好”

<button class="open-window" id="nameButton">click</button>
<button class="open-window" id="titleButton">click</button>

$(document).ready(function(){
    //... your existing code ...
    $(".open-window").click(function(){
        alert(this.id)
        $("#dialog-form").dialog("open");
    });
});

接下来,无论您使用哪两种方法,都需要将该数据存储在对话框中。

$("#dialog-form").dialog("open").data("opener",this.id);

现在您可以使用

访问它
$("#dialog-form").data("opener")

答案 1 :(得分:0)

或您可以使用 on bind 点击事件,例如:

$(#nameButton).bind('click', function(event){});
$(#nameButton).on('click', function(event){});
$(#nameButton).click(function(event){});

事件参数上获取您需要的所有信息......