-1

我刚开始学习jQuery。下面是我尝试为动态添加的 div 元素附加事件“mouseover”和“mouseout”的代码。但是当我尝试在浏览器中运行它时,我没有得到任何结果。我不知道出了什么问题...我搜索了使用 jquery .on() 的用法和语法,但没有得到有利的结果。谁能告诉我,如何使我的下面的代码工作?

    <html>
       <head>
          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
          <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
          <script type="text/javascript">
             $(function(){
                 $("#divid").on("mouseover",".test", function(){
                     $(this).css("background-color", "blue");
                 }).on("mouseout",".test", function(){
                     $(this).css("background-color", "white");
                });
             });

             function AddBox(){
                var div = $("<div></div>").addClass("test").text("Another box");
                $("#divTestArea1").append(div);
             }
          </script>
      </head>
      <body>
         <div id="divTestArea1">
            <a href="javascript:void(0);" onclick="AddBox();">Add box</a>
            <div class="test" id="divid">This is a colored box</div>
         </div>
      </body>
   </html>

提前致谢...;-)

4

1 回答 1

3

这里的问题,

您正在向#divTestArea1此处添加动态 div$("#divTestArea1").append(div);

但是您正在将您的事件委托给 它,以便在其中搜索不存在#divid的 div 类测试。<div id=divid>

试试这个

 $("#divTestArea1").on("mouseover",".test", function(){
   ....
  }

有了这个,您将.testdiv的 mouseover 事件委托给#divTestArea1..这是我们需要的..并且应该可以工作...

于 2013-08-02T07:52:18.350 回答