自动触发DivMenu第二个li元素

时间:2019-06-20 17:56:31

标签: javascript jquery

我尝试使用trigger了很多次,但是无法正常工作。我希望在第二个li元素的菜单上自动触发。请帮帮我。

这是我的代码示例:

$("document").ready(function() {
    setTimeout(function() {
        $("ul.menuH li:nth-child(2) a").trigger('click');
    },1000);
});
<div id="divMenu" class="drop">
   <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
      <tbody>
         <tr>
            <td width="65px" valign="top">
               <a href="http://domain1.com">
               <img src="../Images/home.png" width="63px" height="32px">
               </a>
            </td>
            <td height="36px" width="100%" style="border: 0px; padding: 0px">
               <ul class="menuH">
                  <li id="liCustomerOrders"><a id="RDSub" href="yahoo.com','')">
                     NEW BOOKING</a>
                  </li>
                  <li><a href="http://domain2.com">MY BOOKINGS</a></li>
                  <li><a href="http://domain3.com">BANK ACCOUNT DETAILS</a></li>
                  <li><a href="http://domain4.com">ORDER CANCELLATION</a></li>
                  <li><a href="http://domain5.com">VALIDITY EXTENSION</a></li>
                  <li>
                     <a href="#">MY ACCOUNT</a>
                     <ul>
                        <li><a href="http://domain6.com">CHANGE PASSWORD</a></li>
                        <li>
                           <a id="lnkLogOut" href="javascript:__doPostBack('ctl00$lnkLogOut','')">LOG OUT</a>
                        </li>
                     </ul>
                  </li>
               </ul>
            </td>
         </tr>
      </tbody>
   </table>
</div>

2 个答案:

答案 0 :(得分:1)

您的代码正在运行。您还可以使用.click();

http://api.jquery.com/trigger/

要触发domain3.com,请创建一个单击函数以获取URL。

<script>
    $("document").ready(function() {
       $("ul.menuH li:nth-child(3) a").on( "click", function() {
         var href = $(this).attr('href');
         location.href= href;
       });

    setTimeout(function() {
        $("ul.menuH li:nth-child(3) a").trigger('click');
    },1000);
});
</script>

答案 1 :(得分:0)

来自jQuery文档:

  

.trigger():对于给定的事件类型,执行附加到匹配元素的所有处理程序和行为

为了解决您的问题,您需要更改以下内容:

$("ul.menuH li:nth-child(2) a").trigger('click');

原生.click()

$("ul.menuH li:eq(2) a").get(0).click();

setTimeout(function() {
    $("ul.menuH li:eq(2) a").get(0).click();
},1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="divMenu" class="drop">
    <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
        <tbody>
        <tr>
            <td width="65px" valign="top">
                <a href="http://domain1.com">
                    <img src="../Images/home.png" width="63px" height="32px">
                </a>
            </td>
            <td height="36px" width="100%" style="border: 0px; padding: 0px">
                <ul class="menuH">
                    <li id="liCustomerOrders"><a id="RDSub" href="yahoo.com','')">
                        NEW BOOKING</a>
                    </li>
                    <li><a href="http://domain2.com">MY BOOKINGS</a></li>
                    <li><a href="http://domain3.com">BANK ACCOUNT DETAILS</a></li>
                    <li><a href="http://domain4.com">ORDER CANCELLATION</a></li>
                    <li><a href="http://domain5.com">VALIDITY EXTENSION</a></li>
                    <li>
                        <a href="#">MY ACCOUNT</a>
                        <ul>
                            <li><a href="http://domain6.com">CHANGE PASSWORD</a></li>
                            <li>
                                <a id="lnkLogOut" href="javascript:__doPostBack('ctl00$lnkLogOut','')">LOG OUT</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </td>
        </tr>
        </tbody>
    </table>
</div>