2015-05-30 47 views
0

我想简化下面的脚本,并创建一个可重复使用的功能可按, 我使用它:如何简单的Ajax脚本(删除重复的代码)?

<span id="test"></span> 
<span id="abc"></span> 
<span id="123"></span> 

这里现在是:

<script> 
    $(document).ready(function(){ 
    var callAjax = function(){ 
     $.ajax({ 
     method:'get', 
     url:'abctest.php', 
     success:function(data){ 
      $("#test").html(data); 
     } 
     }); 
    } 
    setInterval(callAjax,1000); 
    }); 

    $(document).ready(function(){ 
    var callAjax = function(){ 
     $.ajax({ 
     method:'get', 
     url:'getabc.php', 
     success:function(data){ 
      $("#abc").html(data); 
     } 
     }); 
    } 
    setInterval(callAjax,1000); 
    }); 

    $(document).ready(function(){ 
    var callAjax = function(){ 
     $.ajax({ 
     method:'get', 
     url:'123.php', 
     success:function(data){ 
      $("#123").html(data); 
     } 
     }); 
    } 
    setInterval(callAjax,1000); 
    }); 
</script> 

,你可以看到,我需要的是更改URL和#,所以我创建了一个功能:

function good(url,tag){ 
    var callAjax = function(){ 
     $.ajax({ 
     method:'get', 
     url:'url.php', 
     success:function(data){ 
      $("#tag").html(data); 
     } 
     }); 
    } 
    setInterval(callAjax,1000); 
    } 

,并改写脚本:

<script> 
$(document).ready(good(abctest,test)); 
$(document).ready(good(getabc,abc)); 
$(document).ready(good(123,123)); 
</script> 

看起来好多了。但似乎并不那么容易。 它无法正常工作。如何解决这个问题呢?

回答

1

你几乎在那里。您需要手动在连接字符串像

function good(url,tag){ 
    var callAjax = function(){ 
     $.ajax({ 
     method:'get', 
     url:url+'.php', 
     success:function(data){ 
      $("#"+tag).html(data); 
     } 
     }); 
    } 
    setInterval(callAjax,1000); 
    } 

Javascript不像php其中变量双引号之间进行评价。

另外,你需要在你的传递参数字符串

$(document).ready(function(){ 
    good('abctest','test'); 
    good('getabc','abc'); 
    good('123','123'); 
}); 
+0

感谢。有用。 – Frank