0

このイベント bind :
on focus :
display a link を使用した textarea があり、テキスト領域のより大きなバージョンがポップアップ表示されます。
on blur : リンクを削除します。

ただし、 onblurがトリガーされたときに既に削除されているため、リンクの「クリック」イベントはトリガーされませんでした。

$("#text-area-new-message").focus(function(){
    $("#text-area-new-message").after('<a id="enlarge-text-area" href="#">enlarge text area</a>');
    $("#enlarge-text-area").click(function(){
        alert('test');
    });
});
$("#text-area-new-message").blur(function(){
    $("#enlarge-text-area").remove();
});

ここにjsfiddleがあります

それを行うにはどうすればよいですか?

4

2 に答える 2

0

1 つの方法は、関数で jquery を使用して、イベント ハンドラをすべての 'future' '#enlarge-text-area' 要素にアタッチすることです。

$('#myParentDiv').on('click', '#enlarge-text-area', function(){});

もう 1 つの方法は、リンクを削除するのではなく非表示にすることです。

于 2013-06-11T09:49:41.183 に答える
0

ユーザーがテキスト ボックスを離れると、リンクの削除を数秒遅らせることができます。

$("#enlarge-text-area").delay(3000).remove();

以上。ユーザーが意図してリンクをクリックするのに適切と思われる時間。これは、たとえば、ゆっくりとフェードアウトしてアニメーションを停止し、マウスをキャプチャした場合にのみ(リンク上にホバリングすることによって)削除することにより、さらに「巧妙」になる可能性があります。

于 2013-06-11T09:44:00.697 に答える