2011-09-20 41 views
0

我有一個jQuery UI模式對話框,它顯示正確。然後,我有對話框內的一些元素,說爲模態對話框中的元素編寫的jQuery腳本未被調用

<div id="test_div"> 
    Test Click me 
</div> 

當我檢查這個元素在螢火蟲,它是正確的加載。但是當我這樣做時:

$("#test_div").click(function(){ 
    alert('I was clicked'); 
}); 

但是這沒有被調用。我在軌道上使用紅寶石。我嘗試將這段代碼放在application.js中,從載入模式對話框的窗體中,在模態對話框本身中,但都不起作用。我做錯了什麼?模態對話框需要不同的東西嗎?請幫忙。

+0

你是否在$(document).ready wrapper中綁定了這個點擊事件? – Atticus

回答

1

您是否嘗試過使用.live來綁定事件?

所以

$("#test_div").live("click", function(){ 
    alert('I was clicked'); 
}); 

我發現,隱藏要素

有時也幫助了,你確定你的控件的名稱是#test_div。不知道軌道,但.Net會改變元素的名稱。爲此,我使用類選擇器並向我的元素添加一個類。

<div class="test_div" id="test_div"> 
    Test Click me 
</div> 

$(".test_div").live("click", function(){ 
    alert('I was clicked'); 
}); 

幷包裝jQuery中;

$(function(){ 
//your code here if you are not already 
}); 
+0

非常感謝。這樣可行。 – rookieRailer

+0

優秀。哪一位btw? :) – griegs

+0

$(「#test_div」)。live(「click」,function()works。順便說一下,我在這個對話框上有一個表單,我希望它在我提交表單時關閉,它可以工作,任何建議?這是我正在做的:\t \t $(「#new_article」)。live(「submit」,function(){ \t \t \t $ .post(this.action,$(this ).serialize(),NULL, 「腳本」); \t \t \t返回FALSE; \t \t});如果我使用$ .dialog( '關閉'),對話框關閉,但會後沒有返回false,因此,發生重定向操作,我希望返回false工作,以及關閉模式對話框,任何返回false後都沒有達到,謝謝。 – rookieRailer