我使用JQuery在用戶單擊按鈕時將新內容(具有Materialize select下拉列表)加載到div中。然而,一個新的div被加載,選擇下拉式不起作用。這是我如何做到這一點,任何幫助表示讚賞。物化下拉菜單在jquery重新加載後無法工作
<script>
$(document).ready(function(){
$("#second-page").hide();
$("#continue-button").click(function(){
var $second_page_content=$("#second-page").html();
$("#first-page").html($second_page_content);
$("#second-page").trigger('contentChanged');
});
$("select").on('contentChanged', function(){
$(this).material_select();
});
});
</script>
<div class="row" id="first-page">
<form>
<div class = "row">
<select id="animal">
<option value = "bird">Bird</option>
<option value = "cat">Cat</option>
<option value = "Insect">Insect</option>
</select>
</div>
<button class="btn waves-effect waves-light" id="continue-button">CONTINUE</button>
</form>
</div>
<div class="row" id="second-page">
<form>
<div class = "row">
<select id="animal-type">
<option value = "hen">Hen</option>
<option value = "lion">Lion</option>
<option value = "butterfly">Butterfly</option>
</select>
</div>
</form>
</div>
你可能必須委託select事件到其父,甚至到文檔它的自我 – SubjectDelta
從不同的文件這兩個DIV?否則,您可以顯示/隱藏它們,而不是移動html內容,以防止事件與其所有者分離 – SubjectDelta
@SubjectDelta,div的顯示/隱藏不起作用,因爲在加載內容之前恢復了以前的狀態,即第一頁顯示,第二頁隱藏。它必須是.html()方法,觸發document.ready再次將元素設置爲它們的初始狀態,或者什麼 – user2970374