我对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()
值?
也许我在这里采取了错误的做法。你们是如何解决这个问题的?
答案 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>
'#'用于阻止clcik
通过jquery阻止默认事件。
添加新的事件处理程序。
参考链接(jquery): -