1

我在这样的页面上有一个 textarea 和一个按钮:

<div id="add_comment_container">
    <textarea id="comment_field" rows="4" cols="40"></textarea>
    <button id="add_comment">Add</button>
</div>

如果用户点击添加按钮而不在 textarea 字段中输入文本,我会显示一条消息并在 textarea 字段周围添加一个红色边框。我要做的是在用户开始输入文本区域时删除该边框。问题是文本区域和按钮是通过 ajax 加载的(因此它们稍后会添加到 DOM 中)。

我尝试像这样使用 .delegate() 函数,但 keyup 事件甚至没有执行:

$('#add_comment_container').delegate('#comment_field', 'keyup', function(){
    $(this).css('border', '');
});

请问有什么帮助吗??

4

2 回答 2

1

jsFiddle 演示

这里有两个问题。您正在委托一个不存在的元素。使用“身体”。此外,您需要设置不同的 css 样式以移除焦点边框,即:outline to 0px

来自演示的 html

<div id="main"></div>

来自演示的 js

var response = '<div id="add_comment_container"><textarea id="comment_field" rows="4" cols="40"></textarea><button id="add_comment">Add</button></div>';
$("body").delegate('#comment_field', 'keyup', function(){
 $(this).css('outline', '0px');
});
setTimeout(function(){
   $('#main').html(response);
 },1000);
于 2013-03-25T01:53:44.190 回答
0

将边框设置为空值将不起作用。您需要将其设置为“无”或其他值。

于 2013-03-25T01:55:01.017 回答