JavaScript与无JavaScript链接和表单
JavaScript vs No JavaScript links and forms
几天前我发布了这个问题:
我最后一个关于ajax链接与普通链接的问题
这是关于让链接为启用JavaScript的浏览器(AJAX)工作,并为非JavaScript浏览器或爬网程序提供正常链接。
现在我发现这种方法对我有效,谷歌也推荐了这种方法。这就是我所做的:
<a href="/some/page.php" onClick="jsfunction():return false">My Link</a>
现在我喜欢的是,它正是我所需要的工作方式。但是,如果我要在jQuery中使用事件处理程序。我会这样做:
<a href="/some/page.php" id="mylink">My Link</a>
<script>
$("#mylink").live(''click'', function(){
my_function();
})
</script>
我想知道当启用JavaScript并且不使用像前面的情况那样返回false的onClick事件时,如何防止我的页面到达目标/some/page.php
。
我还想知道如何对表格进行同样的处理。当我点击提交按钮并启用JavaScript时,我不希望表单执行该操作。
我正在尝试制作一个可以使用和不使用JavaScript浏览器的网站。唯一的区别是启用JavaScript的浏览器将使用AJAX,而其他浏览器则不使用。
使用preventDefault()
,如下所示:
<script>
$("#mylink").live('click', function(event) {
event.preventDefault();
my_function();
});
</script>
请注意,必须将event
作为function
的参数,此示例代码才能工作。此外,我不知道你为什么逃脱了'
(也许这个代码是由另一个脚本生成的?),但除非你在做一些奇怪的事情,否则你不需要它。
从技术上讲,这部分不是你的答案,但它也很重要:正如评论中所指出的,live()
已被弃用。最好的方法是使用事件委派和on()
,如下所示:
<script>
$('body').on('click', '#mylink', function(event) {
event.preventDefault();
my_function();
});
</script>
看起来应该使用方法event.preventDefault()
。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 解析javascript表单验证器
- Javascript表单验证的缺点
- 动态Javascript表单不起作用
- 使用Ajax上传Javascript表单
- JavaScript表单验证-“;“错误”;不按需要工作
- JavaScript表单提交帮助
- HTML/Javascript表单会自动重置
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- javascript表单验证-数值和密码
- 如何使用jsoup发布javascript表单
- 使用Javascript表单提交所需的HTML5
- JavaScript表单返回,但无法正常工作
- 使用HTML/Javascript表单使用ActiveXObject创建带有嵌入图像的outlook电子邮件
- 我如何使这个javascript表单验证DRYer
- Javascript表单验证-jsFiddle错误
- JavaScript 表单操作更改RC方法发布文本输入提交
- Javascript:表单验证getElementById仅返回第一个id元素
- JavaScript表单错误
- 使用 javascript 表单文本框内容