我最近问了一个关于触发动态创建的div的问题,并被引入到.on()函数中。
我通过ajax和.php为div创建了附加信息,其中包含一些数据:
function loadNewcomment(divID) {
$.ajax({
url: templateUrl+"/enternote.php",
cache: false,
success: function(html){
$("#"+divID).append(html);
}
});
}
我想触发该创建的div中元素的keyup,这段代码适用于:
$("#notebox").on('keyup', '.note-field', function(event){
var thisString = $(this).val();
$keyLength = thisString.length;
$rowCount = Math.ceil($keyLength/40);
$currentRow = $(this).attr("rows");
if($currentRow < $rowCount){
$(this).animate({rows:$rowCount},50);
}
});
但此代码不起作用:
$("#notebox").on('click', '.note-field', function() {
alert("clicked");
});
答案 0 :(得分:0)
动态DOM和jQuery很痛苦。我知道它被弃用了,但我过去使用的效果很好:http://api.jquery.com/live/
FWIW - 您也可以尝试使用bind() - http://api.jquery.com/bind/
答案 1 :(得分:0)
我有一个.stopPropagation();在包含div的代码中的其他地方,我现在评论它并且它有效,谢谢。
答案 2 :(得分:0)
附加html后是否可以附加点击事件。
function loadNewcomment(divID) {
$.ajax({
url: templateUrl+"/enternote.php",
cache: false,
success: function(html){
$("#"+divID).append(html).bind('click', function() { /* Click event code here */ }); // id divID is #notebox
}
});
}
答案 3 :(得分:-1)