将.click(function(){}添加到div

时间:2013-03-06 17:18:20

标签: jquery html click

所以我想要它,所以我用不同的id替换不同的<p>。 这是我到目前为止:

$(document).ready(function(){
    $("#quote2").hide();
    $("#quote3").hide();            
    $("#quotes").click(function(){
            if(!$("#quote1").is(":visible") && $("quote3").is(":visible")){
                $('quote3').hide();
                $("quote1").fadeIn('slow');
            }
            if(!$("quote2").is(":visible") && $("quote1").is(":visible")){
                $("quote1").hide();
                $("quote2").fadeIn('slow');
            }
            if(!$("quote3").is(":visible") && $("quote2").is(":visible")){
                $("quote2").hide();
                $("quote3").fadeIn('slow');
            }
    });
});

基本上,我想点击标识为<div>的{​​{1}},然后它将替换#quotes(quote1,2,3) 但我所拥有的并不奏效。我可以不将.click添加到<p>吗?

编辑:

<div>

非常感谢David Thomas

1 个答案:

答案 0 :(得分:1)

我可以建议将事情(批次)简化为:

$('div').click(function(){
    var that = $(this),
        ps = that.find('p'),
        i = that.find('p:visible').index();
    that.find('p').hide().eq(i + 1 < ps.length ? i + 1 : 0).show();
});

JS Fiddle demo

然而,这个答案是基于您的HTML标记是或类似的假设:

<div>
    <p>Quote 1</p>
    <p>Quote 2</p>
    <p>Quote 3</p>
</div>

参考文献: