javascript
  • jquery-mobile
  • cordova
  • 2012-01-12 177 views 0 likes 
    0

    我正在開發一個使用phonegap和jquery mobile的移動應用程序。我有這個函數必須將變量傳遞給另一個函數。它是這樣的:帶參數的Javascript函數調用

    $.each(response.records, function(i, contact) { 
         var url = contact.Id; 
         var newLi = $("<li><a href='javascript:dothis("+url+")'>" + (i+1) + " - " + contact.Name + " - Company "+contact.Company+"</a></li>"); 
          ul.append(newLi);} 
    

    我有dothis(參數)功能,但它的時候我把變量「網址」不會被調用。當我刪除參數時,它可以工作。請幫忙!

    回答

    1

    你需要把URL中引號的JavaScript:

    var newLi = $("<li><a href=\"javascript:dothis('" + 
         url + 
         "')\">" + 
         (i+1) + " - " + contact.Name + 
         " - Company " + contact.Company + "</a></li>"); 
    

    可能需要考慮逃逸的URL,這樣,如果它包含任何困難的字符,你的JavaScript不會打破。

    +0

    感謝名單craigmj。它工作得很好。 – user790514 2012-01-12 08:27:37

    3

    href屬性中使用javascript:協議絕對不是好習慣。將事件綁定到鏈接並作出相應的響應要好得多。

    插入這樣的事情後,你追加newLi到UL:

    $.find('a').bind('click', function() { 
        dothis(url); 
    }); 
    

    下面是關於爲什麼它是不好的做法,使用javascript:協議的一些詳細信息: Why is it bad practice to use links with the javascript: "protocol"?

    +0

    感謝Philip Walton。我想我是爲了20世紀90年代的事情:( – user790514 2012-01-12 11:39:58

    相關問題