我有一些由 jQuery 插入的 DIV。结构是这样的:
<div class="preview_images" id="preview_upload">
<div class="image_box" id="img_box8793">
<p>
<img class="count_19" src="[...]">
<br>
<span class="del_img">löschen</span>
</p>
</div>
</div>
在使用 live() 之前,我想使用 on() 函数。这是我的 jQuery 函数:
$('#preview_upload div p').on("click", "span", function () {
alert('###');
parent_div_id = $(this).parent().parent('div').attr('id');
$(this).parent().parent('div').fadeOut('slow');
$('#final_img_prev #' + parent_div_id).remove();
del_val = $(this).attr('title');
$('#customfields-tf-150-tf,#customfields-tf-16-tf, #customfields-tf-17-tf, #customfields-tf-18-tf, #customfields-tf-19-tf').each(function () {
if ($(this).val() == del_val) {
$(this).val('');
var img_count = jQuery.cookie('img_count');
new_img_count = parseInt(img_count) - 1;
if (new_img_count > 0) {
jQuery.cookie('img_count', '', {
expires: -1
});
jQuery.cookie('img_count', new_img_count, {
expires: 1
});
if (new_img_count < 4) {
new_file = '<input type="file" id="file1" name="file1">';
$('#uploadForm .file_box').html('');
$('#uploadForm .file_box').html(new_file);
$('#uploadForm').fadeIn();
}
}
return false;
}
});
});
alert() 没有被解雇。
错误在哪里?
编辑:
这是您回答后的代码:
jQuery(function($){
$(document).ready(function() {
$('#preview_upload div p').on("click", "span", function(){
alert('###');
});
});
)};
我正在使用 Jquery 1.7.2。Firebug 没有显示错误。不会触发 alert()。
也许是因为 DIV 及其内容是动态创建的?