簡體   English   中英

jQuery將上下文菜單綁定到動態元素ID

[英]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>

所以,話雖這么說,您有兩種選擇。

  • 1)將美元符號改成下划線(推薦)

var men1 = "menu_pf1_topmen_topmen_menul_menuli_";

  • 2)更改以下代碼行:

menues[idx] = "#"+men1+limen[idx];

對此:

menues[idx] = "[name='" + men1 + limen[idx] + "']";

暫無
暫無

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

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