Jquery:变量作为 ID 选择器不起作用
好的,这是我的代码:
$tabularID = 0;
$('a.swfselector').live('mouseover', function(event) {
$tabularID= $(this).parent().attr('id');
$(this).parent().children().not(this).find('.tab').each(function() {
$(this).fadeTo(100, 0.4)
})
$(this).find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
$('#' + $tabularID).live('mouseleave', function(event) {
alert($tabularID);
$(this).children().find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
Jquery 不喜欢这个选择器:
$('#' + $tabularID)
尽管如果我将其更改为:
$('#27')
它会很好地提醒我的变量 $tabularID ,所以我知道这不是错误的变量( $tabularID 的输出是 27 ) 。我在这里需要一个变量,因为父 ID 会根据鼠标悬停的位置而变化。
任何人都可以看到我看不到的东西吗?也许真的很明显。
Ok here is my code:
$tabularID = 0;
$('a.swfselector').live('mouseover', function(event) {
$tabularID= $(this).parent().attr('id');
$(this).parent().children().not(this).find('.tab').each(function() {
$(this).fadeTo(100, 0.4)
})
$(this).find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
$('#' + $tabularID).live('mouseleave', function(event) {
alert($tabularID);
$(this).children().find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
Jquery doesn't like this selector:
$('#' + $tabularID)
Although if I change it to:
$('#27')
It alerts my variable $tabularID just fine, so I know it isn't the variable that is wrong (Output of $tabularID is 27). I need a variable here because the parent ID changes depending on which they mouseover.
Anyone can see what I can't? probably really obvious.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的 ID 必须以字母 az 或 AZ 开头。
此代码 $('#' + $tabularID) 仅在第一次运行时受到影响。这意味着您的 $tabularID = 0。
当您将鼠标悬停在其上时,只会更新 $tabularID 值,但不会更新对此对象 $('#' + $tabularID) 事件的绑定
我认为您可以像这样更改代码:
Your ID must begin with a letter a-z or A-Z.
This code $('#' + $tabularID) is only affected at the first time you run it. It means your $tabularID = 0.
When you mouse over it only update the $tabularID value, but it will not update the binding to event of this object $('#' + $tabularID)
I think you can change your code like this:
我经常在选择器中使用变量。这样一切对我来说都很好。只是避免使用“123”之类的 ID。 ID 命名规则:
I often use variables in selectors. And all works fine for me this way. Just avoid using IDs like '123'. ID naming rules:
我在使用 jQuery 时也遇到过这个问题。但发现常规 JavaScript DOM 可以处理以数字开头的 ID(如果这就是问题所在)。在这种情况下,这可能没有帮助,但可能值得考虑的是,更改该代码段是否比更改 ID 的设置方式更容易。
请注意,开头不需要“#”。
有关 document.getElementById 的详细信息
I've also encountered this problem with jQuery. But found out that regular JavaScript DOM can handle ID's that start with numbers, if that's the problem. This might not help in this case, but it might be worth looking at if it is easier to change that piece of code, rather than changing how your ID's are set up.
Note that you don't need '#' in the beginning.
More info on document.getElementById