Php .在(';单击';)上不';不起作用,但所有其他处理程序都起作用
我最近问了一个关于触发动态创建的div的问题,并介绍了.on()函数 “keyup”很好,“mouseover”很好用,其他一些我已经测试过了,但“click”不会启动 我通过ajax和.php向div添加了信息,其中包含以下数据:Php .在(';单击';)上不';不起作用,但所有其他处理程序都起作用,php,jquery,ajax,triggers,click,Php,Jquery,Ajax,Triggers,Click,我最近问了一个关于触发动态创建的div的问题,并介绍了.on()函数 “keyup”很好,“mouseover”很好用,其他一些我已经测试过了,但“click”不会启动 我通过ajax和.php向div添加了信息,其中包含以下数据: function loadNewcomment(divID) { $.ajax({ url: templateUrl+"/enternote.php", cache: false, success: function(
function loadNewcomment(divID) {
$.ajax({
url: templateUrl+"/enternote.php",
cache: false,
success: function(html){
$("#"+divID).append(html);
}
});
}
$("#notebox").click( function() {
alert("clicked");
});
我想为创建的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);
}
});
您可以像这样使用“单击”:
function loadNewcomment(divID) {
$.ajax({
url: templateUrl+"/enternote.php",
cache: false,
success: function(html){
$("#"+divID).append(html);
}
});
}
$("#notebox").click( function() {
alert("clicked");
});
动态DOM和jQuery是一个难题。我知道它已被弃用,但我在过去使用过,效果很好:
FWIW-您也可以尝试使用bind()-我有一个.stopPropagation();在包含该div的代码中的其他地方,我暂时将其注释掉,它可以工作,谢谢。是否可以在附加html后附加click事件
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
}
});
}
是
注释字段
输入字段吗?能否显示相关的HTML或JSFIDLE?如果注释字段
是输入字段,请尝试使用焦点
/模糊
,而不是单击
,具体取决于您想做什么。尝试更改“#notebox”
到文档
@SamuelCook,如果键控
有效,则不会改变任何东西。动态创建的div
==他不能。他正在创建DOM元素。事件不会触发这不会起作用。。。实际上,我正在寻找要单击的$('.note field'),但因为它是动态创建的。click无法识别它在DOM中。在上应该可以正常工作,但不能:/弃用的jquery 1.7。。。如前所述,它已从1.9A中删除,不推荐使用,但我在过去有过这样的实例:on不会为动态生成的元素触发。