2013-03-07 95 views
0

当你点击一个文件夹时,按钮/链接预置在导航部分,但是当我点击添加的按钮时,它将无法工作。由于某些原因,它无法识别我的点击事件..?点击动态创建的链接无法识别点击事件

我正在处理的快速视频。 https://www.youtube.com/watch?v=NsW1uLbRd9w

我很笨,为什么它不工作ahhhh 任何帮助将是真棒,谢谢。 如果你需要更多的代码,我可以发送它,如果需要的话。

<script> 
     $(function() { 
     // When folder is clicked open it 
     $('button.<?php echo $row->folderName; ?>').bind('click', function() { 
      $('.open.<?php echo $row->folderName;?>').show(); 
       // if folder is open then Prepend homebtn button to nav 
       var k = $('.open').css('display'); 
       if(k == 'block') { 
       $('.nav').prepend('<a class="gohome">HELLO</a>'); 
       } 
     }); 
      $('.gohome').live('click', function() { 
       $('.open.<?php echo $row->folderName; ?>').hide(); 
       }); 

     }); 
    </script> 
+1

'.live()'和'.bind()'?你最近一次更新jQuery的时间? '.bind()'没问题,它可以工作(现在是'.on()'),但不建议使用'.live()'。 – Popnoodles 2013-03-07 03:57:08

+0

我没有想到.live工作了,但我绝望了,还有其他建议吗?我应该用什么来代替.bind? – 2013-03-07 03:57:57

+0

谢谢,我会尝试。不认为这是问题。 – 2013-03-07 03:58:59

回答

0

要绑定到将来的元素,您需要将该事件绑定到执行该过程时存在的父项。由于您的链接被添加到.nav,这就是我们可以使用的。我假设此代码运行时存在.nav.。如果没有,请使用$(document).on('click'...

$('.nav').on('click', '.gohome', function() { 
     $('.open.<?php echo $row->folderName; ?>').hide(); 
    }); 
+0

非常感谢您的支持帮助和理解。它结束了你的代码:) – 2013-03-07 04:11:17