js动态给多个div添加跳转方法

如下的静态页面中,a标签跳转。但是这里会出现一个问题,只有点击到a标签内容时候,
才能发生跳转行为。

<div class="container" id="container" style=" margin-bottom: 160px;">
<div class="container-list">
    <a href="widget.html" style="text-decoration: none">
        <span>widget</span>
        <span style="float: right; opacity: 1;">
        <img src="../img/Index_ico_arrow_right.png">
        </span>
    </a>
</div>
<div class="container-list">
    <a href="shortcutOperation.html" style="text-decoration: none">
        <span>快捷操作</span>
        <span style="float: right; opacity: 1;">
        <img src="../img/Index_ico_arrow_right.png" >
        </span>
    </a>
</div>
<div class="container-list">
    <a href="physicalButton.html" style="text-decoration: none">
        <span>物理按键</span>
        <span style="float: right; opacity: 1;">
        <img src="../img/Index_ico_arrow_right.png" >
        </span>
    </a>
</div>
</div>

目前我的解决方法是,给class="container-list"添加一个click事件。在html里面写死的函数跳转,内容量小可以的。但是如果要大代码量,会变得异常繁琐。

获取class="container-list"的列表,然后插入onclick函数。
window.onload = function () {
    var elements = document.getElementsByClassName("container-list");
    for(var i=0; i<elements.length; i++) {
        var obj = elements[i];
        obj.setAttribute("onclick", "sendUrl(this)");
    }
};
在当前页面中添加sendUrl函数就可以了
function sendUrl(obj) {
    try {
        var url = obj.getElementsByTagName("a")[0].href;
        if(url) {
            window.location.href = url;
        }
    } catch (ex) {
    }
}

为了提高js函数的可靠性,添加了try-catch机制。

鉴于水平有限,可能存在错误,希望不吝指出 email: chenrui@marsdl.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用AJAX制作动态网页阅读器的示例,其中包含多个页面并且能够相互跳转: 首先,我们需要创建多个HTML页面,每个页面都包含一个“<div>”元素,用于显示文章内容,以及两个按钮,用于控制翻页。在页面加载时,我们可以使用JavaScript和AJAX从服务器请求文章内容,并将其显示在页面上。 示例代码如下: index.html: ```html <!DOCTYPE html> <html> <head> <title>动态网页阅读器</title> <script type="text/javascript"> //定义一个全局变量,用于保存文章内容 var article; //定义一个函数,用于从服务器请求文章内容 function loadArticle() { //创建一个XMLHttpRequest对象 var xhr = new XMLHttpRequest(); //定义一个回调函数,用于处理服务器返回的数据 xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { //将服务器返回的数据保存到全局变量中 article = xhr.responseText; //将文章内容显示在页面上 document.getElementById("article").innerHTML = article; } }; //向服务器发送请求 xhr.open("GET", "article.txt", true); xhr.send(); } //定义一个函数,用于跳转到第二个页面 function gotoPage2() { window.location.href = "page2.html"; } </script> </head> <body onload="loadArticle()"> <div id="article"></div> <button onclick="gotoPage2()">跳转到第二个页面</button> </body> </html> ``` page2.html: ```html <!DOCTYPE html> <html> <head> <title>动态网页阅读器</title> <script type="text/javascript"> //定义一个全局变量,用于保存文章内容 var article; //定义一个函数,用于从服务器请求文章内容 function loadArticle() { //创建一个XMLHttpRequest对象 var xhr = new XMLHttpRequest(); //定义一个回调函数,用于处理服务器返回的数据 xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { //将服务器返回的数据保存到全局变量中 article = xhr.responseText; //将文章内容显示在页面上 document.getElementById("article").innerHTML = article; } }; //向服务器发送请求 xhr.open("GET", "article2.txt", true); xhr.send(); } //定义一个函数,用于跳转到第一个页面 function gotoPage1() { window.location.href = "index.html"; } </script> </head> <body onload="loadArticle()"> <div id="article"></div> <button onclick="gotoPage1()">跳转到第一个页面</button> </body> </html> ``` 在这个示例中,我们创建了两个HTML页面,分别为“index.html”和“page2.html”。每个页面都包含一个“<div>”元素,用于显示文章内容,以及一个按钮,用于跳转到另一个页面。 在页面加载时,我们通过调用“loadArticle”函数使用AJAX从服务器请求文章内容,并将其显示在页面上。在按钮被点击时,我们使用JavaScript中的“window.location.href”属性来跳转到另一个页面。 需要注意的是,你需要在服务器上创建两个文本文件“article.txt”和“article2.txt”,并在其中分别保存不同的文章内容。 当然,在实际开发中,你需要考虑到各种异常情况,例如网络故障、服务器错误等,以及用户的操作习惯和体验,来编写更加健壮和友好的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值