2016-10-31 13 views
0

私はMaterial Design Liteを使用していますが、get()jqueryメソッドを使用してポップアップを作成しています。ポップアップ要素が表示されたら、mdlテキストフィールドのクリックは機能しません。しかし、ページの読み込みがうまくいくときにポップアップをロードすると。

私はcssファイルとjsをロードしています。私は問題がjsの負荷の後に要素を読み込むことだと思いますが、どうすればそれを解決できますか?私は過去にこの問題を抱えていませんでした。

ポップアップを読み込んだ後、私はコンソールに何のエラーもありません。

function create(){ 
$("#create").click(function(e) 
{ 
    e.preventDefault(); 
    var linkPopup = $(this).attr('data-popup'); 
    $.get(linkPopup, function(response) 
    { 
     $(".opacity").css("display","block"); 
     $(".popup").css("display","block"); 
     $('.popup').html(response); 
     $(".popup-close i").click(function() 
     { 
     $(".popup .mdl-card").remove(); 
     $(".popup").css("display","none"); 
     $(".opacity").css("display","none"); 
     }); 
    }); 
}); 
} 

SOLUTION: は私が後にロードelmentsを認識しないので、DOMをアップグレードするには、この行を追加する必要があります。

componentHandler.upgradeDom(); 

感謝のダイナミックHTMLがDOMに追加された後

+0

要素がDOMにロードされた後にイベントハンドラをアタッチするか、親要素にアタッチした後にイベントを委譲します。 – sabithpocker

+0

私はこれを行い、クリックは機能しますが、要素をクリックすると初期状態に戻りません。 $( "#入力名").click(関数(イベント) { $(this).parent()。addClass( "is-upgraded is-focused"); }); もっと良い解決策がありますか? mdlはすでにそれを行っているので、後でビューを充電することを諦めてはいけません。 @sabithpocker – user3242861

答えて

0

イベントハンドラを接続します。

$.get("ajax/test.html", function(data) { 
    $(".result").html(data); 
    //attach click event handlers here 
    create(); 
}); 

かそこらだけイベントをwchcihする親要素が装着されている.onを使用して、親とデリゲートにイベントハンドラをアタッチ#createは後で追加することができ、イベントの装着時に存在すると、イベントをクリックしなければならないことで、それに動作します委任。

$("body").on("click", "#create", function() { 
    //click event triggered 
}); 
+0

Material Design Liteとテキストフィールドのクリックハンドラは何ですか? – user3242861

関連する問題