繁体   English   中英

为什么.on()无法在jquery中按预期工作?

[英]Why is .on() Not working as expected in jquery?

我刚刚开始学习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>

提前致谢...;-)

这里的问题

您将动态div添加到#divTestArea1此处$("#divTestArea1").append(div);

但是您将事件委派给#divid因此此搜索在<div id=divid>内的div类测试中进行了搜索,该测试不在其中。

尝试这个

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

这样,您#divTestArea1 .test div的mouseover事件委托给#divTestArea1 ..这是我们所需要的..应该可以工作...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM