2

我正在尝试创建一个按钮,该按钮将隐藏它包含的 div。这个 div 的内容(包括按钮)很可能会在查看页面时被破坏并重新创建几次,所以我一直建议使用“事件委托”来定位按钮,因为在按钮本身实际调用的函数在它被销毁和重新创建后会失败。

我建议使用的语法如下:

$('#container').on('click', '#button', function() {
  $('#div').fadeOut();
});

由于某种原因,这不起作用。我创建了这个 jsfiddle,其中它也不起作用。我究竟做错了什么?谢谢!

编辑:好的,显然我很笨,没有正确使用 jsfiddle。一旦我将它配置为使用 jQuery,它就可以正常工作,但是这种方法在我的实际代码中不起作用。

HTML:

<div class="cycle-slideshow" id="slideshow">
  <div class="cycle-overlay custom" id="info">
    <img src="close_pane.png" class="fadein close_pane button">
  </div>
</div>

jQuery:

$('#slideshow').on('click', '.close_button', function() {
  $('#info').fadeOut('slow');
});

这在我看来功能相同,但不起作用。知道为什么吗?

4

2 回答 2

4

看起来你的元素中没有带有类的.close_pane元素HTML

$('#slideshow').on('click', '.close_button',

应该是

$('#slideshow').on('click', '.close_pane',
于 2012-11-21T22:27:57.523 回答
3

一切都很好:http: //jsfiddle.net/pulkitm/QgGsP/4/

您只是错过了在左侧面板上选择 jquery 框架!

代码工作正常:

$(function() {
    $('#outer').on('click', '#close', function() {
        $('#inner').fadeOut();
    });
});​
于 2012-11-21T21:54:45.693 回答