我需要在锚点中更改href,然后在新窗口中打开链接,但此代码不起作用。有任何想法吗?显然,从ajax调用返回的url是正确的。
<a href="http://www.google.com" target="_blank">alink</a>
$(document).ready(function(){
$('a').on('click', function(e){
e.preventDefault();
_this = $(this);
$.ajax({ type:"GET", url:A_URL, dataType:"json",
success: function(data){
var u = data.results[0].trackViewUrl;
_this.attr('href', u);
window.open(u, '_blank');
}
})
})
})
答案 0 :(得分:2)
如果您只想更改网址并在新窗口中打开:
$(document).ready(function () {
$('a').on('click', function (e) {
$(this).attr("href", "new Url");
$(this).attr("target", "_blank");
})
})
但如果你想通过ajax获取新网址:
$(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();
}
});
})
})
答案 1 :(得分:0)
试试这个
$('a').on('click', function(e){
e.preventDefault();
var me = $(this);
$.get(
A_URL,
{},
function(data) {
var u = data.results[0].trackViewUrl;
me.attr('href', u);
window.open(u, '_blank');
},
'JSON'
);
})