2012-04-27 23 views
2

我正在尝试使用自定义下拉菜单实现jQuery自动完成功能。我可以使用data()._ renderItem方法(注释掉)自定义菜单项,但是这会禁用菜单“选择”功能。如果我尝试通过“标签”字段自定义菜单项“选择”功能可以工作,但我的菜单项HTML被解释为字符串。任何人都可以提出一个干净的方式来完成这一点。在实现自定义HTML菜单时丢失jQuery自动完成功能“选择”功能

$("input#selectedInput") 

.bind("autocompleteselect", function (event, ui) { 
alert("Sel item " + JSON.stringify(ui.item.json)); 
}) 



.autocomplete({ 
appendTo: "#list", 
source: function (request, response) { 
    //alert("success"); 
    $.ajax({ 
     //url: "http://itunes.apple.com/search?term=jack+johnson&entity=musicTrack", 
     url: "Example REST URL", 
     dataType: "jsonp", 
     data: { 
      featureClass: "P", 
      style: "full", 
      maxRows: 12, 
      name_startsWith: request.term 
     }, 

     success: function (data) { 
      response($.map(data.results, function (item) { 
       itunesJson = item; 
       return { 
        label: "<li><img src='" + item.artworkUrl30 + "' alt='no photo'/>" + item.trackName + "</li>", 
       } 
      })); 
     }, 
    }); 
} 
}) 
/* 
     .data("autocomplete")._renderItem = function(ul, item) { 
     return $("<li></li>") 
      .data("item.autocomplete", item) 
      .append("<img src='"+item.value+"' alt='no photo'/>"+ item.label) 
      .appendTo(ul); 
    }; 
     */ 

回答

0

尝试在返回HTML如将图像周围的锚标记。 ...

.data("autocomplete")._renderItem = function(ul, item) { 
return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append("<a><img src='"+item.value+"' alt='no photo'/></a>"+ item.label) 
     .appendTo(ul); 
+0

实际上你必须在你的LI中有定位标记作为你的根节点,以便定制自动完成功能。 – kamasheto 2012-09-09 14:00:14

0

试着在这里读:http://www.devbridge.com/projects/autocomplete/jquery/。 这是我需要自动完成时使用的。配置非常简单。 请告诉我,如果它不符合您的需求。

+0

OP尝试使用此jQuery用户界面自动完成 – naveen 2012-04-28 11:01:33

+0

亚历克斯喜做出下拉列表,感谢您的答复。然而,我正在寻找一个限制jQuery Mobile的自动完成库的解决方案(即没有进一步的插件)。 – 2012-04-28 22:58:10

+0

好的。那么这个怎么样:http://www.andymatthews.net/read/2012/03/27/jQuery-Mobile-Autocomplete-now-available – alexarsh 2012-04-29 08:11:03