1

このコードを ajax 呼び出し (つまり .live) の後に実行したいのですが、どのようにコードを変更すればよいですか?

var el=document.getElementById('txt_url');
el.onkeyup=function(){
    var str=el.value;
    if(str=='') return;   
    if(str.indexOf('http://')==-1 && str.length >= 7)
    el.value='http://'+str;   
}
4

2 に答える 2

2

ハンドラを要素にライブ バインドするには、jQuery.on()メソッドを使用します。(jquery 1.7 以降)

$("body").on("keyup","#txt_url",function(){
   // your code
});

非推奨の.live()ハンドラーを置き換えます。

また、jQuery を使用する場合は、一貫して使用することをお勧めします。また、要素の選択とハンドラーのバインディングにも使用します。

または、成功関数でハンドラーをバインドすることもできますが、私はより一貫した方法でイベントバインドを行うことを好みます。

于 2012-07-05T09:23:04.910 に答える
0

成功ハンドラーを設定する必要があります。

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    var el=document.getElementById('txt_url');
    el.onkeyup=function(){
        var str=el.value;
        if(str=='') return;   
        if(str.indexOf('http://')==-1 && str.length >= 7)
        el.value='http://'+str;   
    }
  }
});

jQueryAjaxドキュメント

于 2012-07-05T09:23:33.720 に答える