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;   
    }
  }
});

jQuery Ajax 文档

于 2012-07-05T09:23:33.720 回答