我使用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