這個例子被簡化了一點,但在我的c#/ jquery代碼中的ASP.NET網頁中,我使用的是右手上下文菜單,當鼠標右鍵時顯示'rightMenu'被點擊。從一個普通的javascript調用獲取元素ID
$(document).ready(function() {
$(".RH_signoffrow td").contextMenu({
menu: 'rightMenu'
},
function(action, el, pos) {
var mykey = getkeyforitem(el);
mykey = "Details|" + mykey;
alert(
'Action: ' + action + '\n\n' +
'Key is: ' + mykey
);
if(action == "details"){
trigger_details_panel(mykey);
}
});
};
//for any td in the right hand side - get its row key
function getkeyforitem(el){
var mykey = $(el).parent().find('.hiddenrowkey').text();
// alert(
// 'Internal getkeyforitem Call' + '\n\n' +
// 'Key is: ' + mykey
// );
return mykey;
};
菜單的回調傳回被單擊的元素,並且可用於將keydata從當前表格行中拉出。一旦我有了這個keydata,我可以用它來調用我之後的真實函數: trigger_details_panel(mykey)。
這工作得很好,如果我只想使用鼠標右鍵,但我想在某些行的圖像,從而單擊圖像時,它產生同樣的效果,隨着鼠標右鍵菜單選擇。
我不知道如何完成這個乾淨。
我可以包括鏈接到的JavaScript在我的頁面圖像...
<asp:ImageButton ID="imgDetails" runat="server" ToolTip="Show Details"
ImageUrl="./images/details.gif" OnClientClick="showdetailsclicked();return
false;"></asp:ImageButton>
但我怎麼能得到它的調用代碼:
getkeyforitem(el);
,或者至少知道元素(EL )它屬於?似乎應該有一種方法來使用(this)指針來得到我想要的 - 但我沒有看到它。 我是否錯過了一個更直接的方式來完成整個問題?
'.contextMenu'。那是什麼插件? – 2009-11-02 17:24:40
上下文菜單被列在主jQuery網站上,但直接鏈接在這裏:http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/ – Jim 2009-11-02 18:16:21