2012-04-24 67 views
1

我有一些参数链接:jQuery的get函数与链接

<a href="index.php?page=home&lang=en" class="flag"> 
    <img src="./images/flags/en.png" class="flag_on" alt="en" title="en"> 
</a> 

以及如何解析$ LANG参数通过点击使用jQuery/AJAX链接的index.php?

我的工作例如:

$(".flag").click(function(event) { 
    event.preventDefault(); 
    $.get(this.href, function(data) { 
     location.reload(); 
    }); 
}); 
+0

当你点击图像时,你试图从'a'标签中获取查询字符串'lang'参数? – Tejs 2012-04-24 17:46:41

+0

@Tejs:我点击链接。它会重定向到'index.php?page = home&lang = en'。然后在index.php中有'$ _GET ['lang']'来管理这个参数。 – 2012-04-24 17:49:58

+0

我不知道你在问什么。 – asawyer 2012-04-24 17:52:24

回答

2
$(".flag_on").click(function(){ 
    $.get($(this).parent().attr("href"), function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
    }); 
});​ 

,也可以修改HTML代码中使用点击事件的链接,但不是针对图像:

<a href="index.php?page=home&lang=en" class="flag"> 
    <img src="./images/flags/en.png" class="flag_on" alt="en" title="en"> 
</a> 

$(".flag").click(function(event) { 
    event.preventDefault(); 
    $.get(this.href, function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
    }); 
}); 
+0

第二个选项可能会起作用。你可以改变脚本重新加载页面1次看到变化吗?删除警报并插入页面重新加载。 – 2012-04-24 18:13:11

+0

那么,我真的不明白你想得到什么。如果您使用Ajax更新页面上的某些内容而不重新加载,那么'$('。result')。html(data)'完全适合。如果你想用Ajax更新整个页面,那么你可以简单地用'$('body').html(data)'来更新主体。但是,如果您希望重新加载页面,则根本不需要Ajax,只要简单地点击链接就可以更新页面,如果您的PHP脚本已经过调整。 – VisioN 2012-04-24 18:29:22

0

如果您想请求的相同的URL,然后只是尝试。没有必要解析查询字符串参数并创建相同的URL。

$(".flag_on").click(function(e){ 
    $.get(this.parent()[0].href, function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
    }); 
    e.stopPropagation(); //stop event bubbling 
}); 
+0

由于该类在img元素上不起作用,他需要定位父元素 – Lucas 2012-04-24 17:54:10

+0

@Lucas - 没有注意到。谢谢,我更正了我的答案。 – ShankarSangoli 2012-04-24 17:55:45

0

尝试在您的获取请求中定位锚点的href。像

var target_url =$(this).parent("a") 
$.get(target_url, function(data){ 
    do something... 
} 

然后你可以还解析target_url得到PARAMS以及