[英]Jquery Binding a context menu to dynamic element id
基本的故事,我有一個系統可以動態處理每個div ID。 我決定用自己的一個接管上下文菜單,並且只要元素的ID是硬編碼的,它就可以工作。 我一直在嘗試編寫一個函數,該函數從數組列表中獲取元素名稱,並且其拋出錯誤從左到右。
function menuclick()
{
alert("Menuclick Called");
var limen= ["armenu", "ormenu", "prmenu", "apmenu", "auxmenu", "itmenu", "sysmenu"];
var menues= Array();
var men1 = "menu$pf1$topmen$topmen$menul$menuli$";
for (idx=0;idx<6;idx++){
menues[idx] = "#"+men1+limen[idx];
$(menues[idx]).bind("contextmenu", this.id, function(e) {
$('#example-menu').css({
top: e.pageY+'px',
left: e.pageX+'px'
}).show();
return false;
});
alert(menues[idx]);
}
return;
}
$(menues [idx])。bind是導致問題的原因,主要是菜單[idx]。 但我不知道為什么。 有什么建議么?
編輯**忘了提,螢火蟲顯示的錯誤是:
“未捕獲的異常:語法錯誤,無法識別的表達式:$ pf1 $ topmen $ topmen $ menul $ menuli $ armenu”
編輯**這使用php從數據庫中獲取div id。
哦.NET
及其愚蠢的約定。 您正在嘗試引用“名稱”而不是“ id”。 您的菜單標記應如下所示:
<div name="menu$pf1$topmen$topmen$menul$menuli$armenu" id="menu_pf1_topmen_topmen_menul_menuli_armenu"> ... </div>
所以,話雖這么說,您有兩種選擇。
var men1 = "menu_pf1_topmen_topmen_menul_menuli_";
menues[idx] = "#"+men1+limen[idx];
對此:
menues[idx] = "[name='" + men1 + limen[idx] + "']";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.