onclick =“func(); return false;”使用$ .get()时不起作用

时间:2010-12-17 13:18:30

标签: jquery html hyperlink

考虑网页的一部分:

<script>
function fun() {
    alert("Link won't work");
}
</script>
<a href="http://google.com" onclick="fun(); return false;">link</a>

这可以按预期工作。但添加jquery $.get()命令会使其失败:

<script>
function fun() {
    $.get("http://yahoo.com");
}
</script>
<a href="http://google.com" onclick="fun(); return false;">link</a>

为什么会这样?通常,在js中我想处理href <a />元素并使用$.get()函数来获取一些数据,然后使用其他jquery函数显示它。我仍然希望<a />拥有href属性。

这个示例中使用了两个外部地址,但在我的情况下,我想在同一个域内发送请求。通过“失败”我的意思是该链接将我带到href地址。

2 个答案:

答案 0 :(得分:3)

$.get()用于发送AJAX请求。由于same origin policy,您无法向其他域发送AJAX请求。因此,除非您的网站托管在yahoo.com,否则$.get("http://yahoo.com");将始终失败。此外,如果你使用jquery,你的代码可能会更像:

<script type="text/javscript">
$(function() {
    $('#link').click(function() {
        $.get('/somepage_on_your_server', function(result) {
            // Handle the result of the AJAX call
        });
        return false;
    });
});
</script>
<a href="http://google.com" id="link">link</a>

答案 1 :(得分:2)

鉴于您的问题描述,我怀疑您有一个javascript错误导致代码根本无法执行。 @ Darin应该解决你的问题,除非javascript错误在别的地方。在这种情况下,我会使用Firefox / Firebug并查看控制台输出以查看错误是否以及在何处。