我正在尝试将事件侦听器分配给动态加载的锚标记。该工具是一个简单的建议框,弹出文本框下方。首先,我将一个keyup侦听器分配给搜索框:
$('.question').keyup(function(e) {
if (e.which != 13) {
self.suggest($(this).val());
}
});
然后,被调用函数self.suggest
:
function suggest(text) {
if (text.length > 0) {
bkBtn.hide();
waitImg.show();
var d = document.createElement('div');
d.className = 'suggest-box';
var data = {}
data.text = text;
$.ajax({
url: BASE_URL + '/urm8/suggest',
type: 'POST',
data: data,
cache: false,
success: function(markup) {
waitImg.hide();
if (markup.indexOf('##none##') != -1 || markup.length == 0) {
$(d).hide();
}
else {
$(d).append(markup);
$('.content').append(d);
}
},
error: function(e) {
waitImg.hide();
alert('error');
$('.content').html('');
$('.content').append(e.responseText);
}
})
}
}
我在文档加载时将此函数分配给.suggest-link
选择器:
$('.suggest-link').live('click', function(e) {
var answerID = $(this).attr('id');
alert(id)
self.updateBackStack();
$(document).find('.suggest-box').remove();
$('.content').blindRightToggle('fast', undefined, function() {
self.appendAnswer(false, answerID);
});
});
此处没有alert
被解雇。我不确定如何以这种方式附加事件监听器,我们将不胜感激。
此外,我在10分钟前使用最新的稳定jQuery。
答案 0 :(得分:2)
使用'on'代替'live'并将事件处理委托给父元素,例如:
$('#parent').on("click", "#child", function() {});
另见:
jQuery .live() vs .on() method for adding a click event after loading dynamic html