2012-02-18 48 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