我有一个列表视图,我需要为右键单击事件添加一个弹出窗口。目前我已经用jquery实现了它。但是页面的初始加载,右键单击不起作用。但是如果我刷新页面,那么右键单击就可以了。我查看了 html 源代码,我可以看到正确加载的所有标记和 jquery 变量。
这是我的标记。
<asp:ListView ID="lvKeywords" OnItemDataBound="lvKeywords_ItemDataBound" OnItemDeleting="lvKeywords_ItemDeleting"
DataKeyNames="Key" runat="server" OnItemUpdating="lvKeywords_OnItemUpdating" >
<ItemTemplate>
<div id="<%#Eval("Key") %>" class="fsKeywordItem">
<asp:Literal ID="ltrlKeyword" runat="server"></asp:Literal>
</div>
<%--this is the popup--%>
<div class="smartPopUp" id="<%#Eval("Suggession") %>" style="display: none;">
<%-- there are some html controls here --%>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#" + '<%#Eval("Key") %>').mousedown(function (event) {
switch (event.which) {
case 3:
event.preventDefault();
showPopup('<%#Eval("Suggession") %>');
}
});
$("#" + '<%#Eval("Key") %>').bind("contextmenu", function (e) {
e.preventDefault();
});
});
</script>
</ItemTemplate>
</asp:ListView>
<script type="text/javascript">
function showPopup(divId) {
$("#" + divId).css("display", "block");
}
</script>
对这个问题有任何想法吗?