捕获.click的URL

时间:2012-09-03 09:25:43

标签: javascript ajax

我对Javascript / Ajax比较陌生。

当用户点击某些网址时,我希望完全使用Javascript / jquery处理点击。

<a class="row_edit" href="/sales_item/edit/{{ item.id }}"></a>

我所做的是在这个html文件中添加一个javascript:

   $(document).ready(function () {  
        $(".row_edit").click(row_edit);
    });

   function row_edit() {
      var url = $(this).attr("href") + "/";
      ...
   }

这很好用,每次点击row_edit时,javascript都会触发并为我做部分网站加载。但有些情况似乎实际链接会被激发(我看到部分网站被加载为整个屏幕)。似乎存在竞争条件。

我认为确保仅启动javascript的最佳方法是将href的内容更改为#。这样我确保网址本身不会反正只有我的javascript开始。但是,如何在url中获取row_edit()值?

也许我在这里采取了错误的做法。你们是如何解决这个问题的?

3 个答案:

答案 0 :(得分:2)

要确保只触发javascript(取消点击的默认操作(导航)),您必须在点击处理程序中调用preventDefault();

例如:

$(document).ready(function () {  
        $(".row_edit").click(row_edit);
    });

   function row_edit(event) {
      var url = $(this).attr("href") + "/";
      ...
      event.preventDefault();
   }

答案 1 :(得分:1)

我不确定使用javascript而不是href执行重定向的意图。无论如何,其中一种方法就是......

如果您正在实施支持&#34;数据的现代浏览器 - &#34; (HTML5)然后你可以使用这样的属性

<a class="row_edit" data-url="/sales_item/edit/{{ item.id }}" href="#"></a>

并修改javascript以获取适当的属性值

 var url = $(this).attr("data-url") + "/";

答案 2 :(得分:0)

<a href="#"> click me </a>
  1. '#'用于阻止clcik

  2. 通过jquery阻止默认事件。

  3. 添加新的事件处理程序。

  4. 参考链接(jquery): -

    http://jsfiddle.net/8LeaP/