求大神帮忙为什么remove()方法不管用

<div id="banner">

    <ul>

    <li class="item1"></li>

    </ul>

   </div>

   <script type="text/javascript">

      var banner_ul_li=$("#banner ul li");

      var banner_ul_li_p=$("#banner_ul_li_p")

         banner_ul_li.mouseover(function () {

            $(this).append("<p title='a1'>123456</p>")

         })

         banner_ul_li.mouseout(function(){

            banner_ul_li_p.remove()

         })

   </script>


leexiaoxiao
浏览 2021回答 1
1回答

stone310

因为这是个动态删除事件,因此不能一开始用变量将它保存,具体修改如下:   <script type="text/javascript">       var banner_ul_li=$("#banner ul li");       var banner_ul_li_p=$("#banner_ul_li_p")   //这里因为是动态删除,不能一开始用变量将它保存,否则变量的值就是页面加载完成后初始值,不会变化,而且这里应该是没有下划线$("#banner ul li p")           banner_ul_li.mouseover(function () {       //这里用mouseenter,不会有冒泡事件             $(this).append("<p title='a1'>123456</p>")          })          banner_ul_li.mouseout(function(){           //用mouseleave             //banner_ul_li_p.remove()   此处不能用自定义变量,而是要重新获取             $("#banner ul li p").remove()           })    </script>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery