如何将JavaScript转换为纯jQuery

时间:2011-04-19 12:41:10

标签: 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>

感谢。

4 个答案:

答案 0 :(得分:3)

我唯一真正改变的是你的点击处理程序。

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

但是,您的主播的href属性指向#,这是一个坏主意。使其指向有效资源,如果没有,请使用更合适的元素,例如button

我也会改变这一行...

setInterval("Test2()", 5000);

...到...

setInterval(Test2, 5000);

您不需要或不需要引号,否则JavaScript必须以类似于eval()的方式评估您的字符串。

答案 1 :(得分:0)

唯一可以实际改变的是click处理程序。

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

您可以适当更新您的选择器。

答案 2 :(得分:0)

您可以选择使用Jquery UI dialog

之类的内容,而不是使用window.open

答案 3 :(得分:0)

它不需要太多,jQuery几乎没有进入它 - 大多数人宁愿将jQuery转换为“纯Javascript”,而不是相反!

  1. setInterval("Test2()", 5000);应为setInterval(Test2, 5000);

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

  3. 对于真正的jQuery,将其包装在document.ready()处理程序


  4. <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>