实时点击无效

时间:2013-06-10 14:03:01

标签: jquery html

因此实时功能不起作用,但这也不适用于.click(function(e){

由于课程是正确的,它开始变得令人沮丧,但它只是没有认识到点击。帮助

[更新] JavaScript :(将.live()切换为.on()但仍未成功)

<script type="text/javascript">
$(function() {

$('.pch').on('click', function(e){ 
 e.preventDefault();
alert('hi');
});

});
</script>

HTML:

<a id="nava" onclick="changeTitle('ReQwire - Home');" href="home" jsload="/slideshow.php" class="notactive pch">
<img id="navaa" src="/graphics/icons/navhome.png" />
<div style="display:none;margin-top:-1px;" id="navab">Home</div>
</a>

感谢Anton的工作代码:

$(document).on('click','.pch',function(e){
    e.preventDefault();
    alert('hi');
});

3 个答案:

答案 0 :(得分:4)

  1. 考虑使用.on()live在新版本中不推荐使用 jQuery的。

  2. 在使用函数之前,您是否调用了jQuery脚本?

  3. 是否需要动态添加项目,您需要委托给最近的项目 像这样的静态元素

    $(document).on('click','.pch',function(){
        //Code here
    });
    

答案 1 :(得分:3)

您无法命名变量this,它是一个保留字。使用其他变量名称。

var $this = $(this);

此外,在最新的jQuery版本中,.live已被弃用(甚至可能已删除)。您应该使用其他方法来附加您的活动。

.on是您要用于满足所有事件处理需求的方法,但并不像将.live更改为.on那么简单。语法略有不同。

如果页面加载时存在.pch元素,之后不会添加其他元素,则可以使用.click,(或.on('click)。

$('.pch').on('click', function(e){ 
    e.preventDefault();
    alert('hi');
});

OR

$('.pch').click(function(e){ 
    e.preventDefault();
    alert('hi');
});

如果您需要将事件绑定到页面加载后添加的元素,则需要使用.on的“委托”语法。

$(document).on('click', '.pch', function(){
    e.preventDefault();
    alert('hi');
});

而不是$(document),您可以(并且应该)使用最接近的静态父元素(在页面加载后不会添加/删除)。

答案 2 :(得分:0)

.live()自jQuery 1.8起不推荐使用。改为使用.on()。

http://api.jquery.com/on/