2013-07-19 132 views
0

我的问题就像标题说,当我点击“hello number 2”div.header时,我的点击第一次触发。第一个消失并从DOM中删除。然后最后会有一个新的。我不明白为什么它不会重复相同的程序,当我点击“hello number 3”标题。jquery点击第一次但不是第二次

在此先感谢。 这是一个fid。

http://jsfiddle.net/h8S9w/2/

var x = 3; 
    var newDiv; 
    var firstHeader; 
    var firstInfo; 
    var lastHeader; 
    var lastInfo; 
    $(document).ready(function(){ 
     $('div.header').click(pseudoakkordeon); 
    }); 
    function pseudoakkordeon(){ 
      x += 1; 
      active = $(this); 
      firstHeader= $('div.page div.header:first-child'); 
      firstInfo = $('div.page div.info:first-child'); 
      lastHeader = $('div.page div.header:last-child'); 
      lastInfo = $('div.page div.info:last-child'); 
      $('div.info').stop(true, true).slideUp(1000); 
      active.next().stop(true, true).slideDown(1000, function(){ 
       firstHeader.slideUp(300, function(){ 
        firstHeader.remove(); 
        firstInfo.remove(); 
        newDivx = $('div.page').append('<div class="header"> <p>Hallihalo Number ' + x + '</p></div><div class="info"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hen</p></div>'); 

        $(newDivx).live('click', pseudoakkordeon); 
       }); 
      }); 
    }; 
+0

你要绑定一个新委派的事件处理程序,每次你点击。作为旁注Live()已被弃用和删除。 – adeneo

回答

2

你必须在对的方法来代替点击方法。因此,代码是现在:

$(document).ready(function(){ 
    $(document).on('click', 'div.header', pseudoakkordeon); 
}); 

看一看太给你捣鼓这个新代码:http://jsfiddle.net/h8S9w/5/

编辑:我在.first method更换:first-child。看看这个新的小提琴:http://jsfiddle.net/h8S9w/7/

+0

它像预期的那样工作,但每次我点击下一个标题时,第一个div应该消失,并在底部出现一个新的标题。它第一次运作,但没有出现新的,第一个没有消失。 –

+0

如果我的答案可以帮助你,你可以验证它。 –

+0

对不起,如果我不清楚。可悲的是它不工作。动画是应该的,但没有别的。 –

0

你可以改变

firstHeader.slideUp(300, function() 

$(document).slideUp(300, function() 
+0

对不起,但它并没有改变任何东西。和以前一样做同样的事情。 –

+0

一定要定义你的变量超出函数,使其成为全局变量。 –

+0

它仍然没有改变任何东西。 –

相关问题