jQuery keypress事件没有触发

时间:2011-11-21 16:07:18

标签: javascript jquery

我有一个表单,当用户点击编辑时,它会将字段从文本更改为带有cat_name_edit类的文本框。

按文本框中的任意键时,不会触发以下代码。它是否与我已经将文本更改为文本框的事实有关?

  $(".cat_name_edit").keypress(function() {

     alert("hi"); 

  });

我也尝试过.click()和.keydown()没有运气。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

好的,显然我必须使用.live()

答案 1 :(得分:0)

我认为页面加载时不存在元素,因此不会附加事件。尝试使用jQuery live

$(".cat_name_edit").live('keypress', (function() {

     alert("hi"); 

  });

答案 2 :(得分:0)

我将其放入fiddle keypress()正常工作:

$(".cat_name_edit").keypress(function(e) {
    $(this).replaceWith("<textarea class=\"cat_name_edit\"></textarea>");
    $("textarea.cat_name_edit").focus();
});

keyup()也会奏效。

我也开始自由地使用textarea替换输入的函数。

答案 3 :(得分:0)

或者您也可以使用EventDelegation。将您的单击事件附加到包含这些文本框的父项,并在函数中检查单击的目标是否具有类cat_name_edit,然后执行操作。