2013-03-18 30 views
0

我正在使用jquery對話框打開按鈕單擊的彈出窗口。如何獲取調用jquery對話框的元素Id

<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> 

如何獲取按鈕的ID在jQuery的對話框中的Close方法?

+1

不要對A元素使用「onclick」屬性。使用jQuery綁定事件,您可以從事件對象獲取信息。 – Ejzy 2013-03-18 20:21:13

+0

@ejzy你在說什麼......? – Dom 2013-03-18 20:23:43

+0

凱文B的答案的第二部分顯示,相當不錯。 – Ejzy 2013-03-18 20:29:52

回答

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") 
+0

我希望在jquery對話框的關閉函數中使用id,而不是在openWindow方法中。 – vjk 2013-03-18 20:26:50

+1

@vjk讓它進入click事件是第一步。接下來就是將它存儲在某個地方,比如對話框的數據。 – 2013-03-18 20:27:46

0

訪問或U可以在或綁定點擊事件像使用

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

事件參數u獲得你所有的信息需要...

+0

你。您。你... – 2013-03-18 20:33:45

+0

你是什麼意思? – user2415300 2013-03-18 22:07:15

+0

@ChenReuven他建議你糾正語法,*「你」 - >「你」x3 – 2013-03-19 14:07:56