作者:Meloux | 来源:互联网 | 2023-05-27 15:06
我正在构建一个可通过将脚本拖放到预设目录中而扩展的Web应用程序.脚本需要在转到页面之前读取文件头,因此我需要在单击链接时使用.preventDefault()并首先运行一些JScript.不幸的是我无法通过.preventDefault()
这是我的链接格式:
Some Text
这是我试图用来停止默认操作的jquery:
$( '.filelink' ).click( function( e ) {
e.preventDefault();
//do some other stuff here
});
编辑:
更多信息:
这
是我的页脚.此函数在INSIDE $(document).ready
AFTER之后$.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
});
})