热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery.click()event.preventDefault()不起作用

如何解决《jquery.click()event.preventDefault()不起作用》经验,为你挑选了2个好方法。

我正在构建一个可通过将脚本拖放到预设目录中而扩展的Web应用程序.脚本需要在转到页面之前读取文件头,因此我需要在单击链接时使用.preventDefault()并首先运行一些JScript.不幸的是我无法通过.preventDefault()

这是我的链接格式:

Some Text

这是我试图用来停止默认操作的jquery:

    $( '.filelink' ).click( function( e ) {
        e.preventDefault();
        //do some other stuff here
    });

编辑:

更多信息:

是我的页脚.此函数在INSIDE $(document).readyAFTER之后$.ajax构建此函数试图侦听点击的链接列表.



1> r3wt..:

由于您的链接会动态附加到页面,因此您需要使用document.on()捕获点击事件.

将事件侦听器附加到动态内容的语法如下

$(document).on( event, selector, callback );

所以你的点击处理程序将成为:

$(document).on('click','.filelink',function(e){

 e.preventDefault();

 //code here

 return false;

});


`return false`实际上并不是必需的.preventDefault()应该足够了.
@RichardN:我建议阅读[文档](http://api.jquery.com/on/):*"事件处理程序仅绑定到当前选定的元素;它们必须存在于您的代码页面上调用`.on()`.*
因为在创建clickhandler时元素不存在,即在dom加载时.jQuery不会在选择器列表中监听新元素,它会非常无效并且会在具有动态内容的页面上崩溃.
@ r3wt:你是对的.`return false;`相当于调用`event.preventDefault(); event.stopPropagation();`.

2> Mouhamad Kaw..:

我认为您错过了$(document).ready()

请按以下方式更新您的代码:

$(document).ready(function(){
     $( '.filelink' ).click( function( e ) {
        e.preventDefault();
        //do some other stuff here
    });

})


推荐阅读
author-avatar
Meloux
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有