keyup没有解雇

时间:2016-10-20 16:12:35

标签: jquery keyup

我有这个工作但它已经停止了。奇怪的是,' mouseup'虽然有效,但关键是'没有。

$(document).ready(function(){

 $('#chordprodiv').on('keyup mouseup', 'textarea', function () {
    chordpro_toCHORDSHEET();
});

});

以下是评论后的2个修复。我更新了jquery并将函数更改为.on,并更正了事件格式,因此它们位于相同的字符串中。代码已经在文档中了。但为了清楚起见,我补充说。

我已经定位了父div,并确定了' textarea'选择器根据另一个建议。

此处还有html

 <textarea id="chordpro" name="chordpro"></textarea>

2 个答案:

答案 0 :(得分:0)

.live在较新版本的jQuery中已弃用,您应该使用.on

此外,您的活动应该在一个字符串中...

nullptr

应以格式调用事件处理程序,如下所示。 $(document).on(事件,选择器,数据,处理程序);

答案 1 :(得分:0)

问题在于如何设置事件处理程序。 Jquery .on()有你正在使用的这个重载:

  

.on(events [,selector] [,data],handler)

但是来自文档(在http://api.jquery.com/on/处找到):

  

提供选择器时,事件处理程序称为委托。当事件直接发生在绑定元素上时,不会调用处理程序,但仅适用于与选择器匹配的后代(内部元素)。 jQuery将事件从事件目标起泡到附加处理程序的元素(即最里面到最外层的元素),并为该路径上与选择器匹配的任何元素运行处理程序。

意思是你有两个选择。

1。使用.on

的其他重载
$('#chordpro').on('keyup mouseup', function () {
...

2。将事件处理程序放在父元素

HTML:

<div id="chordpro-div">
  <textarea id="chordpro" name="chordpro"></textarea>
</div>

使用Javascript:

$('#chordpro-div').on('keyup mouseup', 'textarea', function () {
...