嘿所以我有这个代码:
$('#album_cell' + currentCell).toggle(
function() {
$('#album_cell'+currentCell).flip({
direction: 'lr',
color: "#FFF",
content: '<?php echo form_open('subjects/insert_caption');?>'
+ '<textarea id="caption_input' + currentCell + '">'
+ ' <?php echo $this->lang->line('insert_catpion_text'); ?>'
+ '</textarea>'
+ '<input type="submit" id="submit_caption' + currentCell + '" value="<?php echo $this->lang->line('save'); ?>" /> '
+ '<?php echo form_close(); ?>'
+ ''
});
},
function() {
$('#album_cell'+currentCell).revertFlip();
}
);
我正在使用CodeIgniter&amp; jQuery Flip plugin,这是不相关的,但解释了一些人的未知代码。
现在所有数据都是正确的,插件会在第一次点击后创建一些内容,并按照预期尊重原始内容。
现在我的问题是如何在创建的内容上绑定一个事件,这样点击内部textarea /按钮就不会触发toggle
方法?
修改
根据要求,这是输出的HTML:
<form action="http://localhost/ci/index.php/subjects/insert_caption" method="post" accept-charset="utf-8">
<textarea id="caption_input1">add</textarea>
<input type="submit" id="submit_caption1" value="save">
</form>
我试过了:
$('#album_cell'+currentCell).on(
'click','#caption_input'+currentCell,function() {
alert();
e.stopPropagation();
});
但这不起作用,它确实会触发事件,但仍会切换。
答案 0 :(得分:3)
您必须向.on()函数添加一个选择器,以将事件绑定到动态创建的元素。
尝试类似的事情(body
过于谨慎,使用您加载数据的容器):
$('body').on('click','#caption_input'+currentCell,function(e) {
e.stopPropagation();
});