从上一页的链接触发Javascript
Triggering Javascript from a link on a previous page
我在服务页面上有一个链接列表,当单击该列表时,会显示与单个服务相关的内容。这是为了节省页面上的空间。我使用JS中的幻灯片完成了这项工作。
在主页上,我还有一个服务列表,我想将其链接到服务页面,然后根据主页上点击的服务打开相关内容。
我是Javascript的新用户,所以不幸的是,这不是我自己能解决的问题,也不是我能在其他地方找到解决方案的问题。我真的很感激有人能帮我找到一种方法。
在下面找到我的代码的一个简短示例:
主页
<ul id='homepage-services-list'>
<li><a href='services.php'>Service 1</a></li>
<li><a href='services.php'>Service 2</a></li>
</ul>
服务
<ul class='services-tabs'>
<li class='services-tab'>
<a class='service-1-trigger'>
<div>
<h3>Service 1</h3>
<img src='images/down-arrow-icon.png'>
</div>
</a>
</li>
<article class='service-1-content'>
<p>Content about service etc.</p>
</article>
<li class='services-tab'>
<a class='service-2-trigger'>
<div>
<h3>Service 2</h3>
<img src='images/down-arrow-icon.png'>
</div>
</a>
</li>
<article class='service-2-content'>
<p>Content about service etc.</p>
</article>
</ul>
Javascript-JQuery
$(document).ready(function(){
$(".service-1-trigger").click(function(){
$(".service-1-content").slideToggle(600, function(){
$(this).toggleClass("service-1-toggle").css('display',' ');
});
});
$(".service-2-trigger").click(function(){
$(".service-2-content").slideToggle(600, function(){
$(this).toggleClass("service-2-toggle").css('display',' ');
});
});
});
谢谢!
您可以为链接添加锚点。
<ul id='homepage-services-list'>
<li><a href='services.php#1'>Service 1</a></li>
<li><a href='services.php#2'>Service 2</a></li>
</ul>
使用这些锚点,您可以从URL中提取服务所需的(1或2),并使用jQuery模拟点击。
在您的document.ready
:中
var url = document.location.toString();
if (url.indexOf('#') != -1) {
var num_service = url.split('#')[1];
$(".service-" + num_service + "-trigger").click();
}
这里有一种方法:
-
在主页上,将片段标识符添加到这些链接:
<ul id='homepage-services-list'> <li><a href='services.php#service-1'>Service 1</a></li> <li><a href='services.php#service-2'>Service 2</a></li> </ul>
-
在页面加载时(在
ready
处理程序内部),查看location.hash
。这是页面的当前片段标识符。如果它是您的服务标识符之一,则触发显示该服务的代码。 -
为了保持一致性,您还可以让
click
处理程序通过设置location.hash
将散列添加到URL中。
还可以查看历史API,了解对同相转换的哈希和URL的更多控制。
如果不切换到SPA类型的框架,一个页面上的javascript就无法直接影响后续链接的页面。
解决这一问题的两种简单方法是
- Cookie/localStorage:让您的传出链接为每个链接设置一个具有特定值的Cookie。接收页面可以检查此cookie的值,并根据需要进行调整
- URL散列:在传出链接中包括散列值或参数,即
<a href='services.php#service1'>
。接收页面然后可以检查location.hash
以读取该值
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何在不接触类代码的情况下扩展我预先存在的javascript类
- 让一个javascript加载多个其他java脚本而不接触<头部>
- 刚接触Javascript,可能有点超前了
- 我如何使用Cocos2D-Javascript在Box2D接触监听器
- Google使用OAuth2身份验证从JavaScript客户端接触API问题
- JavaScript的碰撞检测.(检查两个Block Level元素是否接触)