【发布时间】:2016-04-12 04:45:12
【问题描述】:
我让我的事件监听器在我动态创建的 HTML 上工作,但我遇到的问题是它总是只监听第一个结果。
例如,'this.id'的值不同;
图像(隐藏值 = '3')
图像(隐藏值 = '6')
图像(隐藏值 = '8')
但是无论我点击什么图片,值 3 总是被选中。我该如何解决这个问题?
HTML
<div id="test"></div>
JavaScript(动态创建 HTML)
var html =
'<form action="test.php" method="get" id="myForm">' +
'<input type="hidden" name="mID" value"' + this.id + '"/>' +
'<input type="image" id="send" src="this.image" name ="send" alt="submit"/>' +
'</form>';
$('div#test').append(html);
AJAX
$("#test").on('click', '#send', function(e) {
e.preventDefault();
$.get( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(data) {
console.log(data);
});
$("#myForm").submit( function() {
return false;
});
});
【问题讨论】:
-
man id 对于元素尝试类是唯一的
-
使用委托处理程序也可以处理 submt 事件...
-
元素的 ID 必须是唯一的,所以使用类而不是 ID...
$("#myForm")将只选择 ID 为myForm的第一个元素
标签: javascript html ajax