2016-07-06 7 views
0

Google WebアプリケーションでjQuery Mobileを使用していて、タグを選択する際に問題があります。具体的には、外部ソースから読み込まれたコンテンツがあるため、読み込みページを最初に作成する必要があります。外部ソースが利用可能になると、jQueryを使用してコンテンツでページを更新します。このコンテンツには、入力タグが含まれています。問題は私がページを更新するとき、私はこの入力タグの値を見つけることができません。ここでjQueryモバイル動的コンテンツ - カントー選択タグ

は、以下の私のコードです: (intial HTML - コンテンツがロードされる前に)ここで

 <div class="ui-body ui-body-a"> 
      <div id="googleList" > 
       <fieldset data-role="controlgroup" data-mini="true" > 
       <input type="checkbox" name="checkbox-v-6a" id="checkbox-1-a"> 
       <label for="checkbox-v-6a">Loading . . . </label> 
      </fieldset> 
      </div> 
     </div> 

は、新しいコンテンツが入って来たときに上記のコードを更新するために、私のjQueryのです:

function showTaskList(tasks) 
{ 
    //Generate HTML 
    var htmlToInsert = "<fieldset data-role=\"controlgroup\" data-mini=\"true\" >"; 


    for(var i = 0; i < tasks.length; i++) 
    { 

     htmlToInsert += "<input type=\"checkbox\" data-id=\"" + tasks[i][1] + "\" name=\"checkbox-" + i + "-a\" id=\"checkbox-" + i + "-a\" class=\"custom taskCheckBox\" "; 
     if(tasks[i][2] != undefined) 
     htmlToInsert += "checked=\"checked\""; 
     htmlToInsert += " />"; 
     htmlToInsert += "<input id=\"currency-controlgroup1\" data-id=\"" + tasks[i][1] + "\" type=\"text\" value=\"" + tasks[i][0] + "\" data-wrapper-class=\"controlgroup-textinput ui-btn\" class=\"taskinputBox\">"; 
    } 

    //Insert HTML into site 
    $("#googleList").html(htmlToInsert + "</fieldset>"); 

    //Refresh List 
    $("#googleList").trigger("create"); 
} 

入力タグの値を取得するコードは次のとおりです

$(document).ready(function(){ 
    function processTaskList() 
    { 
     console.log("Test"); 
     $(document).on('click', '.taskCheckBox', function (event, ui) { 
      var checkBoxId = $(this).data("data-id"); 
      console.log("CheckBox:" + checkBoxId); 
     }); 
    } 
}); 

CheckBoxId keepいずれかのチェックボックスをクリックすると、未定義に戻ります。私は、データID値を読み取ることができるようにしたい。私はこれをどのように修正するか分からないのですか?どんな助けもありがとうございます。

+0

'$(this).data(" data-id ");'は($ this).data( "id"); ' – imtheman

+0

であると私は疑問を持っています。var checkBoxId = $ this.data(" data-id ");が問題です。 var checkBoxId = $(this).attr( "id"); '... –

+0

ええ、私もそれを試しました。それと同じ結果。私が推測するのは、それはコンテンツが動的に追加されていることによると思われますが、解決策がわからないのですが – Andrew

答えて

0

私は再び以下のコードをテストし、それが動作します - あなたの助けをありがとう

$(document).on('click', '.taskCheckBox', function (event, ui) { 
    var checkBoxId = $(this).data("id"); 
    console.log("CheckBox:" + checkBoxId); 

});

関連する問題