0

http://jsfiddle.net/udit_sharma/GFknc/

私はこのフィドルを作成しました。入力ボックスがあり、ヒントテキストがあります。この入力ボックスに焦点を合わせているとき、それはヒントです-テキストは適切にクリアされています。この入力ボックスのヒントからフォーカスアウトすると、ユーザーが何も入力しないと、テキストが再び表示されます。

しかし、入力ボックスにフォーカスしてブラウザの別のタブをクリックすると、このフィドルに戻ってきたときに、このページを離れるときに空のヒント テキストが表示されていることに注意してください。また、入力ボックスをクリックして出入りするときにこれをクリアしません。?

したがって、私が見つけた問題は、変数「valueChanged」がfalseに設定されないように、別のタブonblurをクリックしたときに呼び出されないことです。そのため、再び焦点を合わせている間、デフォルトのヒント テキスト値はクリアされません。

だから私は onBlur が呼び出されていない理由を知りません。誰かがこれについて手がかりを持っている場合は、教えてください、またはこの機能を実行する他の方法はありますか?

4

2 に答える 2

0

Chrome がテキスト ボックスに対して onblur を 2 回起動しているようです。ぼかしイベントを名前付き関数にし、フォーカス中にぼかしをバインドすることで、これを解決できましたaddOptionInputEle.off('blur').on('blur', onAddOptionBlur);。次に、onAddOptionBlur 内で、ぼかしハンドラーのすべてのインスタンスのバインドを解除するループを作成しました。

while(addOptionInputEle.data('events').blur)
{
    addOptionInputEle.off('blur');
}

注: Chrome 以外ではテストされていません。

于 2012-04-09T13:30:31.363 に答える
0

これを試すことができます:

<input type="text" name="placeHolder" placeholder="hy i'm a place holder" />

これは html5 属性なので、<!DOCTYPE html>html ファイルの先頭に追加できます。

于 2012-04-09T13:06:33.637 に答える