更改特定href并打开新窗口

时间:2015-05-01 11:47:47

标签: jquery ajax

在使用其他网址点击时,希望更改导航栏中的特定网址。

我希望用户点击“联系我们”'并被带到我的主网站,但我不能硬编码想要的链接,所以我需要使用ajax-jquery来改变它。

$(document).ready(function () {
    $('a').on('click', function (e) {
        var $this = $(this);
        $.ajax({
            url: 'GetUrl',
            async: false,
            success: function (url) {
                $this.attr("href", url);
                $this.attr("target", "_blank");
            },
            error: function () {
                e.preventDefault();
            }
        });
    })
})

我不确定上述代码是否可用于执行此操作。

2 个答案:

答案 0 :(得分:0)

好吧,你应该防止' a'的默认行为。当你从你的ajax调用中获取url然后进行重定向。从用户的角度来看,它会变得奇怪,因为在点击和重定向之间会有一段延迟(取决于ajax调用需要多长时间),但我认为它是&#39 ;解决问题的方法:

$(document).ready(function () {
    $('a').on('click', function (e) {
        var $this = $(this);
        e.preventDefault();// Prevent the default behaviour of a
        $.ajax({
            url: 'GetUrl',
            async: false,
            success: function (url) {
                window.location.href = url;// Force the redirection on success
            },
            error: function () {
                e.preventDefault();
            }
        });
    })
});

希望这有帮助。

答案 1 :(得分:0)

$(document).ready(function () {
$('a').on('click', function (e) {
    var $this = $(this);
    $.ajax({
        url: 'GetUrl',
        async: false,
        success: function (url) {
            window.location.href = url;// Force the redirection on success
        },
        error: function () {
            e.preventDefault();
        }
    });
})

});

原来这个工作正常,我试图在Mura CMS中实现它,不幸的是它不太喜欢它,这就是我遇到问题的原因。

没有设法让它在我的应用程序中运行,但你已经让我怀疑我没有做错任何事。我使用了Mura的代码并没有遇到任何问题。

全部谢谢