$(“#but0_0”)。attr(...)有效,但是当隐藏===“#but0_0”时,$(hid).attr(...)不起作用

时间:2010-02-26 20:56:56

标签: javascript jquery

在Safari 4.0上,我有一张打印“????”的支票如果隐藏===“#but0_0”

使用:

$("#but0_0").attr("onmousedown",function(){alert("Aha!");});

不起作用:

var id = "but"+y+"_"+x;
var hid = "#"+id;
if (hid === "#but0_0") console.debug("????");
$(hid).attr("onmousedown",function(){alert("Aha!");});

控制台显示“????”所以代码被命中并且变量是“相同的”(从===字符串比较的角度来看)作为字符串文字,但显然jQuery的$()运算符知道差异?

我有30个div来操作,我需要在运行时计算div的id。有任何想法吗?它可能很简单,例如从“字符串”或某些类似JavaScript stupidity中拉出“字符串”。

2 个答案:

答案 0 :(得分:2)

给出以下内容:

$(hid).live('mousedown', function() {alert("Aha!");});

如果您的元素是动态创建的。

答案 1 :(得分:1)

奇怪的是那种情况。

为什么不使用bind()来附加活动?

$(hid).bind('mousedown', function () { /* something */ });