确定在上一页上单击了什么
Determine what was clicked on previous page
i在一个页面中有两个div(div A和div B),默认情况下,div A设置为显示块,div B设置为无显示。为了让用户登录到这个特定的页面,他必须单击对话框中的链接。像这样:
<div id"dialog-box">
<a href="/newpage.html" class="firstlink"> First Link </a>
<a href="/newpage.html" class="secondlink"> Second Link </a>
</div>
<div class="newpage">
<div class="divA" style="display:block">
</div>
<div class="divB" style="display:none">
</div>
</div>
我想要实现的是这样的东西:
$(".firstlink").click(function(){
$(".divA").css("display","none");
$(".divB").css("display","block");
});
$(".secondlink").click(function(){
$(".divA").css("display","block");
$(".divB").css("display","none");
});
但以上内容当然不起作用,因为divA和divB在不同的页面上。。。我不想在这个小任务上使用cookie。
我会在<a>
href属性的查询字符串中传递所需的数据。所以我将HTML改为:
<a href="/newpage.html?link=firstlink" class="firstlink"> First Link </a>
<a href="/newpage.html?link=secondlink" class="secondlink"> Second Link </a>
然后,在你的newpage.html
中,我会有这样的代码:
(function () {
"use strict";
/* Parse querystring */
var displayMap = {
firstlink: ".divA",
secondlink: ".divB"
},
qs, pairs, split, i, pair,
queryString = {};
qs = location.search;
if (qs) {
pairs = qs.split("&");
for (i = 0; i < pairs.length; i++) {
pair = pairs[i];
split = pair.split("=");
queryString[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
}
}
/* End Parse querystring */
window.onload = function () {
var linkPassed, link;
linkPassed = queryString["link"];
if (linkPassed) {
for (link in displayMap) {
if (link === linkPassed) {
$(displayMap[link]).hide();
} else {
$(displayMap[link]).show();
}
}
}
};
}());
它查看?
之后的URL,将其按"&"
拆分(并在对上循环),然后按"="
拆分。如果密钥是"link"
,那么它将继续查看displayMap
,以查看URL中的值在该页面上的翻译结果。。。并且适当地显示/隐藏。
我相信有一种更优雅的方法来处理这个问题,但我只是想解释一下这种方法。
使用此
<a href="/newpage.html?b=firstlink" class="firstlink"> First Link </a>
<a href="/newpage.html?b=secondlink" class="secondlink"> Second Link </a>
并接收另一页
<?php $link=$_REQUEST['b']; ?>
并使用这个
<?php if($link=='firstlink'){ ?>
$(".firstlink").click(function(){
$(".divA").css("display","none");
$(".divB").css("display","block");
});
<?php
}
if($link=='secondlink'){
?>
$(".secondlink").click(function(){
$(".divA").css("display","block");
$(".divB").css("display","none");
});
<?php
}
?>
如果您想从上一页获取详细信息,可以使用QueryString
。
第一个链接url将是"page1.html?clickedLink=page1Link1"
,第二个链接url为"page1.html?clickedLink=page1Link2"
.
现在,在您的目的地页面上,您可以检查QueryString
,以验证两个链接中的哪一个将您带到此页面。
您可以在第二个页面的链接中包含一个请求参数。在第二个页面上,您将使用JavaScript获取参数的值,该值将与单击的链接相对应。
将链接更改为类似的内容。
<a href="/newpage.html?link=1" class="firstlink"> First Link </a>
<a href="/newpage.html?link=2" class="secondlink"> Second Link </a>
在第二个页面上,使用这样的函数来获取URL参数。http://jquerybyexample.blogspot.com/2012/06/get-url-parameters-using-jquery.html
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
使用上述功能
if (GetURLParameter('link') === '1') {
$(".divA").css("display","none");
$(".divB").css("display","block");
} else {
$(".divA").css("display","block");
$(".divB").css("display","none");
}
如果你不想使用cookie,那么你必须通过url参数传递值。
以下函数将帮助您获取参数
function getParameter(param) {
var val = document.URL;
var url = val.substr(val.indexOf(param))
var n=parseInt(url.replace(param+"=",""));
alert(n+1);
}
getParameter("page");
http://www.example.com/newpage.html?page=firstlink
我希望这对你有帮助。
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- ng 单击
什么都不做 - 用户单击带有哈希值的链接以访问该页面,如果禁用Javascript会发生什么情况
- 当我单击标记而不是删除它时,我应该做些什么来创建自定义菜单
- 如果在javaScript中的按钮单击事件中调用两个函数会发生什么
- 单击另一个用于显示/隐藏图层的按钮时,在Adobe PDF中隐藏/显示按钮的代码是什么
- 当用户在浏览器上单击后退按钮时会话会发生什么
- 具体什么将在JSFiddle中成功触发JavaScript单击事件
- 是什么导致了Chrome中的此Google地图标记单击错误
- 在javascript中单击按钮时更改文本区域中的文本的方法是什么
- 当单击jquery-ui选项卡时,我需要运行一个函数,我做错了什么
- 在 jsTree 中,使节点文本可单击的最佳方法是什么(用于选中复选框)
- JS:这有什么问题?尝试单击链接以显示窗口.提示符
- 确定在上一页上单击了什么
- 从中停用单击事件的最佳方式是什么
- 当您单击关闭按钮时,jQueryUI对话框会重新加载页面.出了什么问题
- 有什么方法可以使SVG对象可单击吗
- 单击上一个按钮浏览器后,存储和检索数据的最佳方式是什么
- javascript知道你什么时候'重新单击表格行的第一个单元格