使用JavaScript

时间:2016-10-13 22:57:28

标签: javascript jquery html

当您点击按钮时,我正在尝试将我的位置从'currentUrl'更改为'currentUrl / somePage.html'。

重要的是代码不依赖于具有硬编码的URL。相反,它应该抓取用户所在的当前URL并将“/somePage.html”的值附加到其末尾。

我做了一些查找,发现window.location.href将返回我当前的url位置,而window.location会将我重定向到一个新的。但是,当我尝试将这些放在一起时,当我点击我的按钮时,我得到一个“函数未定义”错误。

我的代码看起来像这样......

HTML:

<button class="btn btn-default" onclick="redirectToPage()">Some Page</button>

JS:

$(function () {

    function redirectToPage() {
        var url = window.location.href;
        window.location(url + "/somePage.html");
    }
});

你们都是美丽的人!谢谢你的帮助!

4 个答案:

答案 0 :(得分:4)

如果您要使用jQuery,那么您应该使用它的所有功能:

(我永远不会推荐内联javascript)

HTML:

<button class="btn btn-default js-do-redirect">Some Page</button>

jQuery的:

$(document).ready(function(){
  $('.js-do-redirect').on('click', function(){
    var url = window.location.href;
    window.location = url + "/somePage.html";
  });
});

或者如果你想让它可重复使用:

HTML:

<button class="btn btn-default js-do-redirect" data-redirect-to="/somePage.html">
  Some Page
</button>

jQuery的:

$(document).ready(function(){
  $('.js-do-redirect').on('click', function(){
    var url = window.location.href;
    var page = $(this).data('redirect-to');
    window.location = url + page;
  });
});

推荐阅读Decoupling Your HTML, CSS, and JavaScript

答案 1 :(得分:1)

你很亲密。 window.location不是一个函数,而是一个属性。

function redirectToPage() {
    var url = window.location.href;
    window.location = url + "/somePage.html";
}

答案 2 :(得分:0)

redirectToPage仅在处理函数的范围内定义。你需要将它移到外面。

答案 3 :(得分:0)

你的问题是范围界定。 删除$(function(){}) jQuery闭包或使用jQuery在$('#someid').click()按钮上创建onClick事件。