发射所有keydown/up事件contenteditable div

问题描述:

我的问题......我似乎无法解雇所有的keydown事件。发射所有keydown/up事件contenteditable div

我使用的是[进入]和[ESC] keydown事件更新/在某些HTML表格刷新或退出/更新数据

有静态的表格单元和动态的表格单元格,填充基于用户搜索-term input

动态表来自$ .each循环,但div结构完全相同(并且div id是唯一的)。在这两种情况下所产生的表格单元格...

<td class="edit"><div contenteditable="true" id="XYZ">[value]</div></td> 

该keydown功能是完全一样的....

$(document).ready(function() { 

    $("#divA").keydown(function (e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     // send data to server   
     // refresh stuff 
    } 
    if (e.keyCode == 27) { 
     // refresh stuff 
    }  
    }); 

    $("#divB").keydown(function (e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     // send data to server 
     // refresh stuff   
    } 
    if (e.keyCode == 27) { 
     // refresh stuff 
    }  
    }); 

的独立功能过帐日期到服务器是相同的。和PHP更新数据库是一样的。并且都有相同的mysql数据结构double, yes null, zero default。 divB与其中的数据一起存在,并且alert($("#divB").text());显示将在ajax更新中使用的值。

,但我想都不是很重要,因为我已经缩小问题在这里...

在DIVA

,KEYDOWN停止[Enter]键换行,并运行代码

在DIVB

,KEYDOWN不会停止[输入]换行并且没有代码运行

唯一的区别是divA是静态的,divB是在javascript中生成的。我怎样才能让divB keydown函数运行?

由于一些div是动态的,因此不能使用​​将事件绑定到它们。这个方法只会在页面加载时绑定到现有的div。

你需要的是使用jquery.on()jquery.live()(关于更新,所以如果你的jQuery版本支持它,最好使用它)。

+0

完美。非常感谢! – Ben 2012-07-22 09:38:29