jquery仅在第一个元素上切换多个div
我创建了一个页面,但它只是切换第一个div,其他两个都不起作用。。。不知道为什么!提前谢谢jquery仅在第一个元素上切换多个div,jquery,Jquery,我创建了一个页面,但它只是切换第一个div,其他两个都不起作用。。。不知道为什么!提前谢谢 var levelopen=false; $(document).ready(function() { $('.contentlevel').hide(); $('#levelopener').click(function(){ if(levelopen==false) { $('#levelopener').html('[less]
var levelopen=false;
$(document).ready(function() {
$('.contentlevel').hide();
$('#levelopener').click(function(){
if(levelopen==false)
{
$('#levelopener').html('[less]');
levelopen=true;
}
else
{
$('#levelopener').html('[more]');
levelopen=false;
}
$(this).next(".contentlevel").slideToggle(100);
return false;
});
});
这是因为有多个元素具有相同的id(
levelopener
),id必须是唯一的。使用一个类levelopener
和选择器.levelopener
来执行单击事件
另外,使用
$(this)
引用正在单击以进行比较的当前项目,就像您进行切换一样。这是因为您有多个元素具有相同的id(levelopener
),id必须是唯一的。使用一个类levelopener
和选择器.levelopener
来执行单击事件
另外,使用
$(this)
引用正在单击以进行比较的当前项目,就像您进行切换一样。您的HTML不正确。页面中所有元素的ID必须是唯一的
试试这个……这里有一个修改过的fiddle,它使用了一个通用的类名而不是id
您的HTML不正确ID必须在页面中的所有元素中都是唯一的 试试这个……这里有一个修改过的fiddle,它使用了一个通用的类名而不是id
不能有多个具有相同id的元素,在引用调用该方法的对象时,应使用
this
对象
经过一番考虑,我决定只需对函数进行一些其他调整:P
var levelopen=false;
$(document).ready(function() {
$('.contentlevel').hide();
$('.levelopener').click(function(){
if($(this).next(".contentlevel").is(":visible"))
$(this).html('[+]');
else
$(this).html('[-]');
$(this).next(".contentlevel").slideToggle(100);
return false;
});
});
不能有多个具有相同id的元素,在引用调用该方法的对象时,应使用
this
对象
经过一番考虑,我决定只需对函数进行一些其他调整:P
var levelopen=false;
$(document).ready(function() {
$('.contentlevel').hide();
$('.levelopener').click(function(){
if($(this).next(".contentlevel").is(":visible"))
$(this).html('[+]');
else
$(this).html('[-]');
$(this).next(".contentlevel").slideToggle(100);
return false;
});
});
id
s必须是唯一的,因此您的选择器只抓取第一个。将id更改为类,并在jQuery中使用类选择器
$('.levelopener').click(function(){
id
s必须是唯一的,因此您的选择器只抓取第一个。将id更改为类,并在jQuery中使用类选择器
$('.levelopener').click(function(){
这是因为您有多个具有相同id的
a
标记。将它们切换到类,它就可以完美地工作
更新了基于注释的代码,以便在单击功能中使用此。这是因为您有多个具有相同id的a标记。将它们切换到类中,它可以正常工作
更新了基于注释的代码,以便在单击功能中使用此。一个html页面中不能有相同的ID。一个html页面中不能有相同的ID。在html中,所有链接都有相同的ID-levelopener
HTML id应该是唯一的在HTML中,所有链接都有相同的id-levelopener
HTML id应该是唯一的+/-切换已断开。。。将
#levelopener
替换为此
谢谢:),太快,无法回答。+/-开关已断开。。。将#levelopener
替换为这个
谢谢:),回答起来太快了。为什么要返回false
而不是event.preventDefault()
?非常感谢这非常有效,我刚刚开始学习jquery,所以现在这似乎是一个愚蠢的错误!干杯@星际编码器,因为这是海报代码的一部分,我没有改变P使用preventDefault有什么特别的优势吗?@jkl9没问题。:)很高兴能提供帮助。为什么返回false
而不返回event.preventDefault()
?非常感谢,这非常有效,我刚刚开始学习jquery,所以现在看来这是一个愚蠢的错误!干杯@星际编码器,因为这是海报代码的一部分,我没有改变P使用preventDefault有什么特别的优势吗?@jkl9没问题。:)很高兴能帮上忙。