我有一个<div id="pause"><img id="pausimg" src="bla" /></div>
作为按钮,向我发出以下事件:
$('#pause').on('click', pause);
$('#play').on('click', play);
function pause() {
$slider.cycle('resume');
$('#pausimg').attr('src', 'images/pause.png');
$(this).attr('id', 'play');
}
function play() { $slider.cycle('pause');
$('#pausimg').attr('src', 'images/play.png');
$(this).attr('id', 'pause');
}
如您所见,单击按钮时不存在#play
。但点击后,处理程序play()
应该触发。但似乎它不知道#play
,即使我查看日志id
实际上是#play
感谢
答案 0 :(得分:3)
<强> Working jsFiddle Demo 强>
使用事件委托:
$('body').on('click', '#pause', pause);
$('body').on('click', '#play', play);
参考文献:
.on()
- jQuery API文档答案 1 :(得分:0)
使用容器进行事件委派:
<强> HTML 强>
<div id="controlsContainer">
<div id="pause"><img id="pausimg" src="bla" /></div>
</div>
<强>的jQuery 强>
$('#controlsContainer').on('click', '#pause', pause);
$('#controlsContainer').on('click', '#play', play);