2012-08-31 33 views
5

因此,我試圖在通過XAJAX加載後將Chosen jQuery plugin應用於選擇框。下面的代碼:選擇框的jQuery「選擇」 - 如何在AJAX加載選擇元素後應用樣式

通常情況下,我在頁面加載時開始,帶班的所有選擇框都正確適當的風格:

$(document).ready(function() {   
    $(".chzn-select").chosen(); 
}); 

接下來,我有一個使用xajax的一個函數來顯示新的選擇框在頁面上的指定DIV中。這工作正常。然而,它不是應該被選中的樣式。

我試圖在這裏添加一個延遲,因爲我在某些論壇上看過那些適用於某些人的論壇。它不起作用....

function getNewSelect(property_id){ 
    xajax_getNewSelect(); 
    $(".chzn-select-ajax").delay(5).chosen(); 
} 

有沒有人有任何想法?

+0

我做$(」選擇容器「).width('100%')設置選擇後() –

回答

4

xajax做了什麼?

delay只延遲動畫,它對任何其他功能都沒有影響。

如果要延遲功能的使用:

setTimeout(function() { $(".chzn-select-ajax").chosen(); }, 500); 
+0

我添加了一個xajax的鏈接,讓我試試看。 – Shackrock

+0

如果我設置了足夠長的延遲時間,這可行,但看起來很荒謬......如果延遲太短,則不起作用。任何其他想法? – Shackrock

+1

然後,您需要在xajax調用中添加一個回調,完成後觸發此回調。我沒有意識到xajax是異步的。 – Ariel

1
<script language="javascript" type="text/javascript"> 
    $(function() { 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(loadControlDuringAjax); 
     loadControlDuringAjax(); 
    }); 
    function loadControlDuringAjax() { 
     $(".chzn-select").chosen(); $(".chzn-select-deselect").chosen({ allow_single_deselect: true }); 
    } 
</script> 

這對我的偉大工程

希望這將解決您的問題