2013-06-06 44 views
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'); 

回答

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; 
    } 
    }); 
}); 
1

元素「#QuadVenueSearch」頁面不存在,當您試圖訪問它。 它會在您撥打$("#addQuad").popover('show')(或類似的東西顯示彈出窗口)後創建。

嘗試在顯示彈出窗口後調用$("#QuadVenueSearch").typeahead()

希望這會有所幫助。

+0

我想我能做到這一點是通過結合他們的方式,但它不工作。 – Nick