2012-02-18 46 views
0

您好我如何通過點擊一個按鈕,載入div的內容(A URL)之前,而不是要求在頁面加載之前,我得到這個代碼作爲一個答案:A HREF =#改爲的JavaScript:

<script type="text/javascript"> 
    function toggleDiv(id){ 
     if ($('#' + id).html() == '') { 
      $.ajax({ 
       url: 'api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=SOMETHING&from=en&to=de&text=Hello', // your url to microsoft translator 
       success: function(data) { 
        $('#' + id).html(data); 
       }, 
       error: function() { 
        $('#' + id).html('The resource could not be loaded'); 
       } 
      }); 
     } 

     $('#' + id).toggle(); // Toggle div visibility 
    } 
</script> 

<a href="#" onclick="toggleDiv('a')">Show/Hide Value</a> 
<div id="a" style="display:none"></div> 

首先,它不能正常工作,並且總是顯示「無法加載資源」,如果您將類似於(http://knowpersia.com/a.txt)的txt鏈接也不起作用。 其次顯示/隱藏值鏈接使用href =#和onclick系統來工作。當我在我的網站上使用它時,它會在我點擊它時回到主頁。有沒有辦法來改變它的東西,如:

<a href="javascript:toggleDiv('a')">Show/Hide Value</a> 

感謝

回答

2

你有一個id傳遞給toggleDiv()功能,你傳遞對象的集合 - >toggleDiv('a') // Nop。另外,如果你使用jQuery,我建議你擺脫那個醜陋的內聯代碼。然後,您可以將jQuery對象傳遞到您的函數中:

<a href="#" id="link">Show/Hide Value</a> 
<div id="content"></div> 

var toggleDiv = function($el) { 
    if ($el.empty()) { // You can just use `empty()` 
     $.ajax({ 
      url : 'api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=SOMETHING&from=en&to=de&text=Hello', // your url to microsoft translator 
      success : function (data) { 
       $el.html(data); 
      }, 
      error : function() { 
       $el.html('The resource could not be loaded'); 
      } 
     }); 
    } 
    $el.toggle(); // Toggle div visibility 
}; 

$('#link').click(function(){ toggleDiv($('#content')); }); 
+0

親愛的elclanrs,我真的很新,在使用java到我的html可以請告訴我如何可以實現這個代碼到html文件?我的意思是整個過程,以便當用戶點擊顯示/隱藏值鏈接時,他/她會看到微軟翻譯器的輸出?! – user1215741 2012-02-19 12:39:14