jQuery单击事件是否未触发?

jQuery单击事件是否未触发?,jquery,Jquery,我有这个,如果你向下滚动地图到li,这是我的代码 HTML <ul class="play_navigation"> <li class="active"><a class="barino_story_bottom" href="#">The Story</a></li> <li><a class="barino_

我有这个,如果你向下滚动地图到li,这是我的代码

HTML

<ul class="play_navigation">
    <li class="active"><a class="barino_story_bottom" href="#">The Story</a></li>
    <li><a class="barino_video_bottom" href="#">The Video</a></li>
    <li><a class="barino_gallery_bottom" href="#">The Gallery</a></li>
    <li><a class="barino_equipment_bottom" href="#">The Equipment</a></li>                          
</ul>
我的jQuery

<script type="text/javascript">
    $(document).ready(function(){
        $('.play_navigation a').click(function(){
            console.log("this is the click");
            return false;
        });
    });
</script>

$(文档).ready(函数(){
$('.play_navigation a')。单击(函数(){
log(“这是单击”);
返回false;
});
});

如果我点击链接,什么都不会发生……您可以查看源代码并在那里看到它……但是如果我将其粘贴到控制台中,它就可以正常工作了……这个标记是异步添加到DOM中的吗?在这种情况下,您需要使用
live

注意:
.live
已在最新版本的jQuery中被弃用并删除(理由充分)。有关用法和解决方案,请参阅下面的事件委派策略

<script>
    $(document).ready(function(){
        $('.play_navigation a').live('click', function(){
            console.log("this is the click");
            return false;
        });
    });
</script>
如果希望在文档准备就绪之前绑定事件,还可以将事件委托给文档(注意,这也会导致jQuery检查每个单击事件,以确定元素是否匹配相应的选择器):


您需要阻止默认事件(在链接之后),否则您的链接将加载新页面:

    $(document).ready(function(){
        $('.play_navigation a').click(function(e){
            e.preventDefault();
            console.log("this is the click");
        });
    });
正如评论中指出的,如果你的链接没有href,那么它就不是链接,请使用其他链接


不工作?你的代码乱七八糟!到处都有准备好的活动。。。清理它,将所有脚本放在一个就绪事件中,然后重试,它很可能会解决问题。

我在这上面浪费了几个小时的时间。幸运的是,我找到了解决办法。如果您使用的是引导管理模板(AdminLTE),则可能会出现此问题。 问题是我们必须使用adminLTE框架插件

示例:
ifChecked
事件:

$('input').on('ifChecked', function(event){
   alert(event.type + ' callback');
});
了解更多信息


希望它也能帮助你。

可能对某些人有用:检查

pointer-events: none;
在CSS中。它可以防止点击被JS捕获。
我认为这是相关的,因为在这种情况下,CSS可能是您最不愿意研究的地方。

他们不应该这样做。通过使用preventDefault(),您不需要这些技巧。如果链接没有href,那么它就不应该是链接,只需使用一个span或一个按钮。return false与preventDefault()做了相同的事情,作为奖励,它还可以防止向上传播。我倾向于同意Capsule,您的HTML不是动态绘制的,但事件肯定不会在页面加载的正确时间绑定。加载页面后,.play_导航页面上没有任何事件。你应该试着把你的脚本放在一起,甚至最好把它们作为最后加载到页面上的东西。我同意分散在整个页面上的document.ready事件是一个坏主意…我可能会在js文件上创建并将它们放在那里…我应该把脚本放在页面的顶部还是底部?我不知道这个
$(文档)。on('click'、'#ID',function(){}
我尝试使用旧的
$(“按钮”)。click(function(){}
技术浪费了我一天的大部分时间。竖起大拇指!类似的问题和类似的答案并不能解释为什么我们需要以足够的精度使用事件委派。其他人说这是在文档加载后需要的(不总是真的),其他人说总是使用它(不总是)。这是唯一可以接受的解释,说明何时必须使用.on()而不是.click()-当您的DOM元素由于DOM操纵而认为事件绑定不再存在时。唯一对我有效的选项是将事件委托给文档。不确定为什么。
$('input').on('ifChecked', function(event){
   alert(event.type + ' callback');
});
pointer-events: none;