2010-10-25 36 views
0

簡單的問題導致了巨大的麻煩。JQuery Modal不會搭配dotnet ClientID

我使用的是通常與功能,看起來像這樣initiallised JQuery的模態插件(JQM):

$().ready(function() { 
    $('#popup').jqm({ trigger: $('.trigger') }); 
}); 

哪裏#popup是要表明,當模態的元素的ID顯示,'觸發器是導致模態顯示的元素的CSS類。

這適用於靜態ID的發現,但只要你有一個動態的clientID的更換#popup ID整個事情倒了:

$().ready(function() { 
    $('#<%= popup.clientID %>').jqm({ trigger: $('.trigger') }); 
}); 

我不知道爲什麼會這樣 - 我認爲在有問題的元素擁有動態ID分配之前,JavaScript初始化存在某種時序問題。當然,一旦頁面被加載,看看元素中的ID和JavaScript函數中的ID如預期的那樣匹配。我已經嘗試將JavaScript直接放在頁面中,並且使用REgisterStartUpScript動態注入它,但都不起作用。

任何建議感激地收到。

乾杯, 馬特

回答

0

你可以使用一個類選擇:

$(function() { 
    $('.popup').jqm({ trigger: $('.trigger') }); 
}); 

popup類分配給您想要的模式連接到DOM元素。

另外也許我錯了,但不是$().ready(function()一個不贊成的語法(我記得在某個地方閱讀過它,但現在還沒有完全記得)?

+0

嗯,我需要一個動態值作爲選擇器,因爲我將模態合併到一個用戶控件中,所以目標元素必須是唯一的。但是,奇怪的是,使用類選擇器似乎更好。它仍然不是完美的,但它似乎會導致兩種模式打開 - 所以進一步的建議將不勝感激。 – 2010-10-25 11:26:19