![](/img/trans.png)
[英]MenuItem.NavigateUrl = Javascript results in opening two window, one null
[英]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.