0

我有这个问题,我搜索但找不到答案。我正在动态创建以下代码:

$("#addQuad").popover({
placement : 'bottom',
title : 'Title',
html:true,
content : '$htm',
template: '<div class="popover add_quad_popover"><div class="arrow"></div><div   class="popover-inner"></h3><div class="popover-content"></div></div>'
}); 

QuadVenueSearch 在我的 $htm 变量中,我这辈子都无法访问这个元素。如何继续并以某种方式将此元素添加到 DOM?

$("#QuadVenueSearch").typeahead({

  source: function (query, process) {

  $.ajax({
  url: QuadzerObj.APP_PATH + "venues/typeahead_search",
  type: "get",
  data: {query: query},
  dataType: "json",
  success: function (data) {
    venues = [];  
    map = {};

     $.each(data, function(index, venue){
              map[venue.name] = venue;
              venues.push(venue.name);
      });
   process(venues);
  }
});
},
 updater: function(item) {
     $("#QuadVenueID").val(map[item].id);
      return item;
}
});

我试图通过这样做来绑定它们,但仍然无法正常工作:

$('html').bind('bindQPS',function(){
$("#QuadVenueSearch").typeahead({

 source: function (query, process) {

 $.ajax({
 url: QuadzerObj.APP_PATH + "venues/typeahead_search",
 type: "get",
 data: {query: query},
 dataType: "json",
 success: function (data) {
 venues = [];  
 map = {};

 $.each(data, function(index, venue){
              map[venue.name] = venue;
              venues.push(venue.name);
      });
   process(venues);
  }
});
},
updater: function(item) {
     $("#QuadVenueID").val(map[item].id);
      return item;
}
});
});

$("#addQuad").popover({
placement : 'bottom',
title : 'Title',
html:true,
content : '$htm',
template: '<div class="popover add_quad_popover"><div class="arrow"></div><div  class="popover-inner"></h3><div class="popover-content"></div>   </div>'}).trigger('bindQPS');  
4

2 回答 2

1

#QuadVenueSearch当您尝试访问它时,页面上不存在元素“ ”。它将在您调用后创建$("#addQuad").popover('show')(或类似于显示弹出窗口的内容)。

$("#QuadVenueSearch").typeahead()显示弹出窗口后尝试调用。

希望这会有所帮助。

于 2013-06-06T07:23:34.510 回答
0

如果有人正在寻找这个问题的答案,我是这样解决的:

$('body').on('focus','#QuadVenueSearch',function(e){  

  $(this).typeahead({

  source: function (query, process) {
  $.ajax({
  url: QuadzerObj.APP_PATH + "venues/typeahead_search",
  type: "get",
  data: {query: query},
  dataType: "json",
  success: function (data) {
    venues = [];  
    map = {};
     $.each(data, function(index, venue){
              map[venue.name] = venue;
              venues.push(venue.name);
      });
   process(venues);
  }
});
},
updater: function(item) {
     $("#QuadVenueID").val(map[item].id);
      return item;
     }
   });
 });
于 2013-06-06T21:58:06.950 回答