2017-05-30 8 views
0

ユーザーがボタンをクリックしたときにいくつかの選択フォームを作成しようとしています。ボタンをクリックしたときに選択したフォームを初期化するときに問題が発生しています。Materializeを生成するボタンをクリックして選択する

$(document).ready(function() { 

    $('select').material_select(); //This should initialize 
    let output = { 
    columnNumber: [] 
    }; 
    //let headers=[]; 
    let addColumnSource = $("#addColumnTemplate").html(); 
    let addColumnTemplate = Handlebars.compile(addColumnSource); 

    $("#newColumnsButton").click(function() { 
    $('select').material_select(); //Re-initialize after the button is clicked? 
    for (let i = 1; i <= $("#numberOfColumns").val(); i++) { 
     output.columnNumber.push(i); 

    } 
    $("#addColumnContainer").append(addColumnTemplate(output)); 

    }); 
$('select').material_select(); //Still not getting initialized 

}); 

そして:

は、これまでのところ私は試してみました

$("#newColumnsButton").click("contentChanged", function() { 

    for (let i = 1; i <= $("#numberOfColumns").val(); i++) { 
     output.columnNumber.push(i); 

    } 
    $("#addColumnContainer").append(addColumnTemplate(output)); 
    $('select').on('contentChanged', function() { 
     // re-initialize (update) 
     $(this).material_select(); 
    }); 
    }); 

をしかし、ユーザーがボタンをクリックすると、選択フォームがまだレンダリング取得されていません。私は、選択フォームが追加されているので、テンプレートに何も問題がないことを知っています。ただし、ブラウザのデフォルトであり、プロパティーはdisplay:noneです。

ボタンクリックで選択フォームを初期化する適切な方法は何ですか?

答えて

1

確かに私から10分前です。あなたがダンダンバーを追加した後で、あなたがしなければならないのは初期化だけです!

$("#newColumnsButton").click(function() { 
    for (let i = 1; i <= $("#numberOfColumns").val(); i++) { 
     output.columnNumber.push(i); 
    } 
    $("#addColumnContainer").append(addColumnTemplate(output)); 
    $('select').material_select(); 
    });