2011-12-23 11 views
3

私はjQueryの新機能を使用しています。私は委任に関する問題について少し苦労しています。私のコードで 私はによってロードされた動的なページがあります。jQuery Mobile .delegate()がトリガーされていません

$("#results").delegate('li', 'click', function(evt){ 
     var queryData = "id=" + $(this).attr("id"); 
     if ($(this).attr("id")){ 
     $.ajax({ 
      type: "GET", 
      url: "wiw_detail_page.html", 
      data: queryData, 
      beforeSend: onDetailBeforeSend, 
      success: onDetailSuccess, 
      error: onError 
     }); 
     } 
     else 
     { 
     alert("Please select an Employee from the list"); 
     } 
     return false; 
    }); 

これはonDetailSuccess機能である:私は私の最初のページは「wiw_details_page」に移動し得るよう

function onDetailSuccess(data, status){ 
     $("body").append(data); 
     $("#wiw_detail_page").page(); 
     $.mobile.changePage("#wiw_detail_page", { transition: 'slide' }); 
    } 

すべてが、うまく動作します。私はそのように、折りたたみ式の下で、フィールドのリストを持って新しいページ内 :

<div data-role="collapsible" data-collapsed="false" data-theme="b" id="comData"> 
    <h2>Communication Data</h2> 
    <div id="communicationData"> 
     <fieldset> 
     <label for="address">Address:</label> 
     <a href="#locationMap"> 
      <input class="goMap" type="text" 
       name="address" id="address" 
       disabled="true" 
       value="<%=employeeprofile-building%>"/> 
     </a> 
     </fieldset> 
    </div> 
    </div> 

このページはまだ$(で作成されていないので、私はアドレスの入力フィールド上のクリックハンドラをアタッチする必要があり、ドキュメント).ready()私はこのようにそれにデリゲートを添付:

// Use delegation, since detail view is not availble at document.ready time: 
    $("#wiw_detail_page").delegate('input.goMap','click', function(evt){ 
     if ($(this).attr("id") == 'address'){ 
     alert("Click!"); 
     if (navigator.geolocation) { 
      detectBrowser(); 
      navigator.geolocation.getCurrentPosition(function(position){ 
      newInitialize(position.coords.latitude, position.coords.longitude); 
      }) 
     }else{ 
      detectBrowser(); 
      newInitialize(45.06150, 7.65599); 
     } 
     } 
    }); 

    }); 

この代表団は行われていないと私は、入力フィールドの何をクリックしたときにエラーの(いなくても、あらゆる種類の)が起こるん。

私も、セレクタを変更して試してみました:

$("#comData").delegate('input.goMap','click', function(evt) 

と絶望的な試みとして、私はそれを変更:

$("body").delegate('input.goMap','click', function(evt) 

任意の手掛かりを?

事前にこのような長い質問や感謝、 R.

+0

あなたはjQueryとjQueryMobileのどのバージョンを使用していますか? –

+0

jquery-1.7.1.min.jsとjquery.mobile-1.0.min.js – RobyPag

+0

jQMはjQueryバージョン1.6.4のみをサポートしていますが、私はダウングレードし、さらにここに投稿してください:http://jquerymobile.com/blog/2011/11/16/announce-jquery-mobile-1-0/ –

答えて

0

あなたはのように、#communicationDataを試してみたいのため申し訳ありません:

$("#communicationData").delegate('input.goMap','click', function(evt) {...} 
関連する問題