2015-05-30 48 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