1

次のようなページにテキストエリアとボタンがあります。

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

ユーザーがテキストエリアフィールドにテキストを入力せずに[追加]ボタンをクリックすると、メッセージが表示され、テキストエリアフィールドの周囲に赤い境界線が追加されます。私がやろうとしているのは、ユーザーがテキストエリアに入力し始めたときにその境界線を削除することです。問題は、textareaとボタンがajaxを介してロードされることです(したがって、これらは後でDOMに追加されます)。

このように.delegate()関数を使用しようとしましたが、keyupイベントも実行されません。

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

助けてください?

4

2 に答える 2

1

jsFiddleデモ

ここには2つの問題があります。存在しない要素に委任しています。「body」を使用します。また、フォーカスの境界線を削除するには、別の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

境界線を空の値に設定しても機能しません。'none'または別の値に設定する必要があります。

于 2013-03-25T01:55:01.017 に答える