2012-08-31 7 views
5

Tak więc próbuję zastosować Chosen jQuery plugin do skrzynki wyboru po załadowaniu przez XAJAX. Oto kod:jQuery "Wybrane" dla wybranych pól - jak zastosować stylizację po załadowaniu przez AJAX wybranego elementu

Normalnie zacznę na stronie obciążenia, a wszystkie wybierz pola z klasy są prawidłowo stylizowany odpowiednio:

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

Następnie Mam funkcję, która używa Xajax aby wyświetlić nowe pole zaznaczania w podanym DIV na stronie. To działa dobrze. JEDNAK, to nie jest stylizowane przez Chosen, jak powinno być.

Próbowałem też dodać tam opóźnienie, ponieważ czytałem na niektórych forach, które działały dla niektórych osób. To nie działa ....

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

Czy ktoś ma jakieś pomysły?

+0

zrobiłem $ (”wybrany pojemnik ") .width ('100%') po ustawieniu wybranym() –

Odpowiedz

4

Co robi Xajax?

delay tylko opóźnia animacje, nie ma wpływu na żadną inną funkcję.

Jeśli chcesz opóźnić zastosowanie funkcji.

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

Dodałem link do xajax, pozwól mi to wypróbować. – Shackrock

+0

Jeśli ustawię opóźnienie wystarczająco długo, to działa, ale wygląda śmiesznie ... jeśli opóźnienie jest zbyt krótkie, to nie działa. Jakieś inne pomysły? – Shackrock

+1

Następnie należy dodać wywołanie zwrotne w wywołaniu Xajax, które wyzwala to po zakończeniu. Nie zdawałem sobie sprawy, że xajax jest asynchroniczny. – 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> 

Działa to wielkie dla mnie

nadzieję rozwiązać ten problem