我想弄清楚我用JQuery遇到的一個問題。當我在DOM中動態創建元素時,相關事件似乎不會觸發(例如:.hover)。不確定在動態創建元素時,是否必須以某種方式附加元素事件?提前致謝!回想動態創建的元素
HTML代碼:
<div id="dosages" style="display:none;">
<h4>Choose a dosage</h4>
<ul id="dosagesUL" class="thumbnails">
</ul>
</div>
的Jquery/JavaScript的:
$("#medsSelect").change(function() {
var dosages = [];
var dosage;
var caption;
var image;
var html;
var idx;
$("#medsSelect option:selected").each(function() {
idx = $(this).attr("value");
for (i = 0; i < medsArray[idx][1].length; i++) {
dosage = medsArray[idx][1][i];
caption = medsArray[idx][2][i];
image = medsArray[idx][3][i];
html = "<li class=\"span2\">";
html += "<div id=\"dosageIdx-\" + idx>";
html += "<div class=\"thumbnail\">";
html += "<img src=\"img/meds/" + image + ".png\">"
html += "</div>";
html += "<div class=\"thumbnail-capbox\">";
html += "<div class=\"med-label\">" + dosage + "</div>";
html += "<div class=\"med-caption\">" + caption + "</div>";
html += "</div>";
html += "</div>";
html += "</li>";
dosages.push(html);
}
});
$("#dosages").fadeOut(0);
$("#dosagesUL").empty();
$("#dosagesUL").append(dosages.join(''));
$("#dosages").fadeIn(600);
})
$('div[id*="dosageIdx-"]').hover(
function() {
alert('in');
},
function() {
alert('out');
}
);
- [動態綁定事件創建元素](http://stackoverflow.com/questions/1359018/in-jquery-how-to-attach-events-to-dynamic-html-elements) –
- [在jQuery中,如何將事件附加到動態html元素](http://stackoverflow.com/questions/1359018/in-jquery-how-to-attach-events-to-dynamic-html-elements) –
- [添加jQuery點擊事件動態添加內容](http:///stackoverflow.com/questions/852450/adding-jquery-click-events-to-dynamically-added-content) –