2009-10-25 82 views
0

我正在使用此jQuery代码来显示和隐藏我的网页上的div。正如你所看到的,我只限于5个div。有没有办法让它们变成动态的?有没有办法让这个jQuery脚本动态?

$(document).ready(function() { 
    $('.box').hide(); 
    $('a.toggle').click(function() { 
    $('.box').toggle(400); 
    return false; 
    }); 
}); 

<a href="#" class="toggle" title="Show Comments"><img src="images/read.gif" alt="" /></a> 
<div class="box" class="comment">hidden content</div> 

这是我修改后的代码

$(function() { 
    $('div.box').hide(); 
    $('a.toggle').click(function() { 
    $(this).next('div.box').toggle(400); 
    }); 
}); 

<div class="entry"> 
    <h3>Title</h3> 
    <p>content</p> 
    <p class="posted">Posted by Admin<br /> 
    <a href="#" class="toggle"> 
    <img src="read.gif" alt="" /> 
    </a> 
</div> 
<div class="box" class="comment">Hidden</div> 
+0

您能告诉我们'#toggleN'和'#boxN'元素的标记吗? – CMS 2009-10-25 06:13:12

+0

当然..感谢您的帮助。 brb – Jack 2009-10-25 06:16:06

+0

您是否注册两次以提出同样的问题? http://stackoverflow.com/questions/1620377/jquery-parents-help – Mottie 2009-10-26 10:08:51

回答

3

看着你的标记,你可以做这样的事情:

$(document).ready(function() { 
    $('div.box').hide(); 

    $('a.toggle').click(function() { // all A elements with class 'toggle' 
    $(this).next('div.box').toggle(400); // toggle the next DIV with class 'box' 
    }); 
}); 

基本上绑定一个单击处理与toggle类所有的链接,然后在单击时,它会寻找下一个兄弟(相对于点击链接)这是一个divbox类,使用Traversing/next功能。

用标记here检查上面的例子。

编辑:我检查了您的标记,你.toggle链接嵌套在div.entry元素里面,也有一个未关闭的段落,所以我又调整了代码,您的标记:

$(function() { 
    $('div.box').hide(); 
    $('a.toggle').click(function() { 
    $(this).parents('.entry').next('div.box').toggle(400); 
    }); 
}); 

您会注意到我在寻找div.entry元素,因为.box是它们的兄弟。

查看更新示例here

+0

嗨CMS,感谢您的帮助。我完全没有JavaScript/jQuery知识。有没有一个例子可以指出我的意思,以便我可以跟随你所说的话?我在标记中看到的其中一个问题是,我有两个类,这会打破一切。这是允许在标记中有2个类吗? – Jack 2009-10-25 06:30:17

+0

CMS,谢谢你的例子。对此,我真的非常感激。不幸的是,我无法得到这个工作。当我点击按钮时,没有任何反应。我会在上面发布我修改后的代码。 – Jack 2009-10-25 06:38:00

+0

再次感谢CMS的努力。它不会工作。我所做的就是复制你的确切代码并将其粘贴到新页面中。即使除了你的代码,当然还有jquery bin,没有其他的东西,它不会工作。有任何想法吗? – Jack 2009-10-25 07:04:00

相关问题