2012-12-14 68 views
0

當我在控制檯日誌中打印出來時,我可以看到它的值,但是我看不到在list.html中html頁面中填充的值。所以我猜測我需要確保元素在它之前已經被加載?任何建議將不勝感激。jQuery Mobile - 在html中動態替換腳本標記

HTML:

<script type="text/html" id="searchPickPlaceTemplate"> 
<div class="searchPickWhere_box"> 
    <ul data-inset="true">        
     <li><a data-transition="slide" id="searchPickWhere" href="list.html">{{whereSearch}}</a></li>        
    </ul> 
</div> 

腳本:

$('#restWhere').bind('touchstart mousedown', function (e) {     
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: WebServiceURL + "GetSuburbsWithPlacesAndCity", 
       dataType: "json", 
       data: "{'cityId':'" + cityId + "', 'categoryId': '" + categoryId + "'}", 
       success: function (result) { 
        $("#searchPickPlace").html(""); 
        $.each(result.d, function() { 
         $(document).ready(function() { 
          console.log('SubrubName asdfsd ' + this.name); 
          var test = $("#searchPickPlaceTemplate").text(); 
          test = test.replace("{{whereSearch}}", this.name); 
          $("#searchPickPlace").append(searchPickRestaurnt); 
         }); 
        }); 
       } 
      }); 
     }); 
+1

嗨。請檢查您的代碼,以便我們爲您提供幫助:在HTML中,有一個沒有相應關閉腳本的開始腳本標記;它沒有'src'屬性;而類型不會是'text/javascript'?另外,'#restWhere'在哪裏? (我想這是一個button/div /在'searchPickWhere_box'附近的東西)。 – Roimer

+1

有幾個關於您的問題的提示。首先:'$(document).ready()'不會(或不應該)在那裏工作:當你的ajax調用完成時,'ready'事件應該已經被觸發。第二:你的'console.log(...)'起作用,所以你的ajax調用也可以,但是你應該添加一個console.log(test),這樣你就可以驗證你是否獲得了你想要替換的值(I認爲你不是)。 – Roimer

+0

@Roimer - 抱歉,我會盡我所能來形容。 #restWhere是一個按鈕。我將很快得到你的信息,我需要獲得更多的細節,當我下一個工作! – Andrew

回答

1

第一:

  1. 刪除$(文件)。就緒(函數(){從每塊,它不會去與它一起工作,你不需要它。

  2. 替換此行:$(「#searchPickPlace」)。append(searchPickRestaurnt);用這個$(「。searchPickPlace」)。append(test);你將錯誤的東西附加到錯誤的元素上。

這裏是你的代碼的啞下來例如:http://jsfiddle.net/Gajotres/tJBGw/

因此,它應該是這個樣子:

$('#restWhere').bind('touchstart mousedown', function (e) {     
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: WebServiceURL + "GetSuburbsWithPlacesAndCity", 
      dataType: "json", 
      data: "{'cityId':'" + cityId + "', 'categoryId': '" + categoryId + "'}", 
      success: function (result) { 
       $("#searchPickPlace").html(""); 
       $.each(result.d, function() { 
        console.log('SubrubName asdfsd ' + this.name); 
        var test = $("#searchPickPlaceTemplate").text(); 
        test = test.replace("{{whereSearch}}", this.name); 
        $(".searchPickPlace").append(test); 
       }); 
      } 
     }); 
    }); 
+0

嘿@Gajotres,一切都很好。我會用適當的jsfiddle讓自己更容易獲得幫助。並感謝您的回覆。 – Andrew

+0

我認爲這有點不錯..第一次當我點擊時我得到這個:http://www.flickr.com/photos/[email protected]/8277843243/和第二次圍繞http://www.flickr.com/照片/ 79621732 @ N03/8277843085 /。不知道爲什麼它被清除掉,即使我只是取代了價值。 – Andrew

+0

這裏是jsfiddle:http://jsfiddle.net/antaeusa/XD8A7/3/ – Andrew

0

總是試圖只是HTML標記之前將您的JavaScript代碼。例如:

<body> 
    your html code 
    <script> 
     // your js code 
    </script> 
</body> 

或使用jQuery文檔準備功能。你只能使用它一次,而不是每次迭代。

謝謝