jQuery和Js函数语法混合

时间:2013-03-31 18:51:41

标签: javascript jquery function

我有以下小问题。这只是整个代码的片段,它通常通过setInterval(时间,函数)运行;命令,但我想通过改为“下一步”按钮替换自动滑动图片,为什么我不能只使用jQuery并将其粘贴到

$("#nextBtn").click(nextSlide); 

命令?我的按钮出现但没有事件。可能是我把jQuery命令放在JS

function onLoadWindow(e) {}

而不是jQuery的

$(document).ready(function() {})

我刚刚学完了JS的基础知识并且很快就开始使用jQ,所以我仍然是两个初学者,但有一些以前的Java编程经验。我对将语法混合起来有点新意。非常感谢帮助! =)

编辑:用完整代码替换代码段。我尝试通过取出不需要的东西(例如几个标签和相关样式)来浏览它。但现在看来我甚至无法通过div按钮将文本发送到控制台,所以我很确定在某处有一个明显的“noob”错误,对不起“浪费”人们的时间..

<!DOCTYPE html>
  <html>
           <head>
        <meta charset="UTF-8">
        <title>JS Slideshow</title>

        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>

        <style type="text/css">

            .slide {
                height:200px;
                width:320px;
                position:absolute;
                opacity:0;
            }

            img {
                width:100%;
                height:100%;
            }   

            #slideshow {
                position:relative;
            }

            .active {
                opacity:1;
                transition:opacity 1s;
            }

            #nextBtn {
                display:block;
                float:left;
                height:25px;
                width:40px;
                background-color:black;
                margin-top:210px;
            }

        </style>

        <script type="text/javascript">

            window.addEventListener("load",onLoadWindow);

            var active_slide;
            var slides;

            function onLoadWindow(e) {
                var slideShow=document.getElementById("slideshow");
                slides=slideShow.getElementsByTagName("div");
                active_slide=0;

                slides[0].classList.add("active");

                //setInterval(nextSlide,10000);
                $("nextBtn").click(nextSlide);

            }

            function nextSlide () {
                slides[active_slide].classList.remove("active");
                active_slide++;

                active_slide%=3;  

                slides[active_slide].classList.add("active");
            }


        </script>

    </head>

    <body>
        <div id="slideshow">

            <div class="slide">
                <img src="IMG/bridge.jpg" alt="" title="" />
            </div>

            <div class="slide">
                <img src="IMG/leaf.jpg" alt="" title="" />
            </div>

            <div class="slide">
                <img src="IMG/road.jpg" alt="" title="" />
            </div>
</div>
    <div id="nextBtn"></div>

    </body>

</html>

1 个答案:

答案 0 :(得分:2)

它确实只是一个缺少哈希符号来正确引用Id ..感谢所有人,当然还有VeXii指出它x)