javascript
  • jquery-mobile
  • cordova
  • 2012-01-12 130 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

    相关问题