Javascript/jQuery如何引用创建的元素
在jQuery中,我一直在使用按钮创建元素,然后引用通过使用此按钮单击的按钮。例如:Javascript/jQuery如何引用创建的元素,javascript,jquery,Javascript,Jquery,在jQuery中,我一直在使用按钮创建元素,然后引用通过使用此按钮单击的按钮。例如: $(".addphoto").click(function(){ photo_count++; $(this).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>"); }); 问题是它现在指的是文档,
$(".addphoto").click(function(){
photo_count++;
$(this).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>");
});
问题是它现在指的是文档,而不是刚才单击的按钮。如何引用该按钮?如果为原始按钮提供ID,则可以使用.click函数引用该按钮 HTML Javascript JQuery
var photo_count = 0;
$('#addPhotoButton').click(function () {
photo_count++;
$(this).parent().before("<div><label>Add Photo: <input type='file' name='photo[" + photo_count + "]' id='addPhotoID_"+photo_count+"'></label></div>");
});
jsIDLE URL:尝试使用.live而不是.click方法
编辑:我将添加一个简短的描述
.live方法为当前和将来与当前选择器匹配的所有元素附加事件处理程序。传递事件并引用$e.currentTarget,而不是$this
不,这仍然是指单击的按钮。请提供您的htmlplease共享脚本以动态创建按钮
<div class="x">
<div>
<button class="addphoto" id="addPhotoButton">addphoto</button>
</div>
</div>
var photo_count = 0;
$('#addPhotoButton').click(function () {
photo_count++;
$(this).parent().before("<div><label>Add Photo: <input type='file' name='photo[" + photo_count + "]' id='addPhotoID_"+photo_count+"'></label></div>");
});
$(document).on("click", ".addphoto", function(e){
photo_count++;
$(e.currentTarget).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>");
});