我有一个脚本,在那里我想使用生活在下面的代码。
if($('#Menu').length >0) {
$('#Menu >li').click(function() {
});
}我怎么使用它?
发布于 2012-04-25 15:02:28
使用on而不是live,因为自1.7起它已被弃用
if($('#Menu').length) {
$('#Menu').on('click', '> li', function() {
});
}从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版本jQuery的用户应该优先使用.delegate()而不是.live()。
如果您使用的是jQuery版本< 1.7和>= 1.4.2,则可以使用delegate
$('#Menu').delegate('> li', 'click', function() { // different argument order than on
});发布于 2012-04-25 15:02:57
你没有。
为了支持.delegate(),.live()被弃用,然后是.delegate() (和.bind()等)。为了支持.on()而被弃用。
.live()的后继者的示例实现
这可能会给出类似的结果:
$('#Menu').on('click', '> li', function(){
});如果没有.on(),请使用.delegate()
正如我提到的,为了支持.delegate(),.live()被弃用了,所以如果您的jQuery版本中没有可用的.on(),您应该首先尝试使用.delegate():
$('#Menu').delegate('> li', 'click', function(){
});做类似事情的live()示例
如果你坚持使用.live(),你可以这样写代码:
$('#Menu > li').live('click', function(){
});更正了问题中的示例
通常,您不需要检查是否存在某些内容,即可向其添加事件处理程序。jQuery将搜索该元素,如果未找到,则不会添加事件处理程序,因此您可以这样写:
$('#Menu >li').click(function() {
}); 而不是你在问题中写的。
发布于 2012-04-25 15:02:41
.live( events, handler(eventObject) )
<script>
$("#Menu >li").live("click", function(){
});
</script>https://stackoverflow.com/questions/10310808
复制相似问题