基本的故事,我有一个动态处理每个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是导致问题的原因,主要是menues [idx]。但我无法弄清楚为什么。有什么建议吗?
编辑**忘记提及,错误萤火虫显示的是:
“未捕获的异常:语法错误,无法识别的表达式:$ pf1 $ topmen $ topmen $ menul $ menuli $ armenu”
编辑**这使用php从数据库中获取div id。
答案 0 :(得分:0)
ohhh .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] + "']";