簡體   English   中英

NavigateUrl未在MenuItem中調用javascript

[英]NavigateUrl not calling javascript in MenuItem

我似乎無法弄清楚為什么菜單項沒有調用asp.net菜單中的javascript功能。 當我單擊菜單項時,菜單關閉,並且不再執行任何其他操作。 我的代碼的一部分如下所示:

  <asp:Panel runat="server" ID="MenuPanel" CssClass="MenuPanel" style="display: none">
    <asp:Menu ID="MyMenu" runat="server" CssClass="Menu" ForeColor="Black"
      BorderStyle="Double" BorderColor="Gray" BorderWidth="1px">
      <StaticMenuItemStyle BackColor="#DBDDE0" CssClass="MenuItem" />
      <StaticHoverStyle BackColor="#CCCDCE" />
      <Items>
        <asp:MenuItem Text='Item 1' Value="0" Selectable="true" NavigateUrl="javascript:alert('hello world 1')" ImageUrl="~/image1.gif"/>
        <asp:MenuItem Text='Item 2' Value="1" Selectable="true" NavigateUrl="javascript:alert('hello world 2')" ImageUrl="~/image2.gif" />
      </Items>
    </asp:Menu>
  </asp:Panel>

更新1

當進一步的測試表明當我注釋掉要單擊的元素(調出菜單的元素)的onBlur事件時,我將轉儲瀏覽器輸出,JavaScript正常工作。

當焦點從元素移開時,onBlur事件中的代碼將隱藏彈出菜單。 第二次單擊菜單項本身會觸發onBlur事件,該事件會隱藏菜單。 似乎因為菜單是隱藏的,所以與之關聯的JavaScript不會被調用。

在瀏覽器中輸出是什么樣的?

使用viewsource或firebug或IE調試器進行查看。

使用onclick可以更好地解決此問題:

onclick='alert("test");return false;'

我認為您應該嘗試JQuery

<script language="javascript" type="text/javascript">
   $(function () {
        $(".Menu a").each(function (index) {
             $(this).click(function () {
                 alert(index);
                 return false;
             });
        });
   });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM