JavaScript vs No JavaScript链接和表单

Mad*_*ams 3 html javascript ajax jquery

几天前我发布了这个问题:

我关于ajax链接与普通链接的最后一个问题

它是关于使链接适用于JavaScript启用浏览器(AJAX)和非JavaScript浏览器或爬虫的普通链接.

现在我发现这种方法适用于我,也是Google推荐的.这就是我做的:

<a href="/some/page.php" onClick="jsfunction():return false">My Link</a>
Run Code Online (Sandbox Code Playgroud)

现在我喜欢这个,它正是我需要它的工作方式.但是如果我要使用jQuery的事件处理程序.我会做这样的事情:

 <a href="/some/page.php" id="mylink">My Link</a>

<script>
  $("#mylink").live(\'click\', function(){
  my_function();
  }) 
</script>
Run Code Online (Sandbox Code Playgroud)

我想知道如何在/some/page.php启用JavaScript时阻止我的页面到达目标,而不是像前一种情况那样使用返回false的onClick事件.

我也想知道如何对表格做同样的事情.当我单击提交按钮并启用JavaScript时,我不希望表单执行操作.

我正在尝试创建一个使用和不使用JavaScript浏览器的网站.唯一的区别是启用JavaScript的浏览器将使用AJAX而其他浏览器不会.

eli*_*ide 6

使用preventDefault(),像这样:

<script>
    $("#mylink").live('click', function(event) {
        event.preventDefault();
        my_function();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

请注意,您必须具有event作为function此示例代码的参数才能工作.此外,我不知道你为什么逃脱了你的'(也许这个代码是由另一个脚本以某种方式生成的?),但除非你做了一些奇怪的事情,否则你不需要它.


这部分在技术上不是你的答案,但它也很重要:live()已弃用,正如评论中所指出的那样.执行此操作的最佳方法是使用事件委派on(),如下所示:

<script>
    $('body').on('click', '#mylink', function(event) {
        event.preventDefault();
        my_function();
    });
</script>
Run Code Online (Sandbox Code Playgroud)