2011-04-19 82 views
2

我有一些正在運行的JavaScript,我想將其轉換爲純jQuery。請幫幫我。這裏是我的整頁代碼:如何將JavaScript轉換爲純jQuery

<html> 
<head> 
<title>Test</title> 
<script type="text/javascript"> 
function Test1(){ 
    w = window.open('test1.html', 'popup1', 'width=800,height=600'); 
    setInterval("Test2()", 5000); 
} 
function Test2(){ 
    if(w != null){ 
     if(w.frames.length == 1){ 
      return false; 
     }else{ 
      window.open('test2.html', 'popup2', 'width=800,height=600'); 
     } 
    } 
} 
</script> 
</head> 
<body> 
<a href="#" onclick="Test1();">Test</a> 
</body> 
</html> 

謝謝。

+14

「JavaScript以純的JQuery」 意味着JavaScript是JQuery的一個超集,而不是相反。 – 2011-04-19 12:42:45

+1

此代碼中沒有任何內容可以專門移植到jQuery。這完全沒有意義。 – 2011-04-19 12:43:09

+2

更好的標題可能是'jQuery如何改進此代碼?' – 2011-04-19 12:43:55

回答

3

我真的改變的唯一事情就是你的點擊處理程序。

$('a').click(Test1); 

然而,你的錨的href屬性指向#這是一個壞主意。使其指向有效的資源,如果沒有,請使用更合適的元素,例如button

我也想改變這一行...

setInterval("Test2()", 5000); 

...到...

setInterval(Test2, 5000); 

你不想要或需要報價出現,否則JavaScript有評估你的字符串的方式類似於eval()

+0

謝謝,Test2功能呢?任何機會轉化爲JQuery? – Mikerobenics 2011-04-19 13:01:01

+0

@Anar jQuery是一個JavaScript庫。它的代碼不會簡單地轉換爲普通的JavaScript;更多你可以利用它來使事情變得更容易。 – alex 2011-04-19 13:01:53

0

唯一可以切實改變的是click處理程序。

$('a').click(function() { /* body of Test1 */ }); 

您可以適當地更新選擇器。

0

它並不需要太多,和jQuery勉強進入它相反 - 大多數人寧願轉換jQuery來「純JavaScript」,而不是其他繞過!

  1. setInterval("Test2()", 5000);應該setInterval(Test2, 5000);

  2. if(w != null) - 什麼是w

  3. 對於真正的jQuery,它包裝在一個document.ready()處理


<html> 
<head> 
<title>Test</title> 
<script src="jquery.js"> </script> 
<script> 
$(document).ready(function() { 
    var w = null; 

    function Test1() { 
     w = window.open('test1.html', 'popup1', 'width=800,height=600'); 
     setInterval(Test2, 5000); 
    } 

    function Test2() { 
     if (w == null || w.frames.length == 1) { 
      return; 
     } 
     window.open('test2.html', 'popup2', 'width=800,height=600'); 
    } 

    // bind the click handler 
    $('a').click(Test1); 
}); 
</script> 
</head> 
<body> 
<a href="#">Test</a> 
</body> 
</html> 
+0

對不起,我拼錯了。我更新了代碼,請再次檢查。 – Mikerobenics 2011-04-19 12:59:18