为什么我的jquery按钮不会被禁用

时间:2017-03-16 04:45:28

标签: jquery button disable-link

如果用户当前在该页面上,我正在尝试禁用按钮,我知道有更有效的方法,但我正在练习我的if,elses。

问题是我仍然可以点击链接,如果我点击它们并且我在同一页面上,它们都会刷新页面。我的代码:

$("#homepage").on("click", function(event) {
    if (window.location.href === 'index.html') {
        $(this).attr('disabled', "disabled");
        $(this).attr('disabled', true);
        event.preventDefault();
    }else {
        window.location.href = 'index.html';
    };
});	
$("#aboutUs").on("click", function(event) {
    if (window.location.href === 'aboutus.html') {
        $(this).attr('disabled', "disabled");
        $(this).attr('disabled', true);
        event.preventDefault();
    }else {
        window.location.href = 'aboutus.html';
    };
});

2 个答案:

答案 0 :(得分:0)

验证window.location.href的值是什么,如

if (window.location.href === 'dummyrul/index.html') {
                $(this).attr('disabled', "disabled");
                $(this).attr('disabled', true);
                event.preventDefault();
            }

如果条件如下,则将此值放入:

ArrayList<Trails> finalData = getTrails();
Adapter adapter = new Adapter(this, finalData);
rvItem.setAdapter(adapter)

答案 1 :(得分:0)

实际上window.location.href会为您提供完整的网址,例如: -

https://www.example.com/index.html

http://www.example.com/index.html

这就是为什么你的if条件似乎永远不会成真。

使用indexOf(),如下所示: -

$("#homepage").on("click", function(event) {
    if (window.location.href.indexOf('index.html') >-1) {
            $(this).prop('disabled', true); // recomended to use `prop`
            event.preventDefault();
    }
    else {
        window.location.href = 'index.html';
    }
}); 
$("#aboutUs").on("click", function(event) {
    if (window.location.href.indexOf('aboutus.html')>-1) {
        $(this).prop('disabled', true);// recomended to use `prop`
        event.preventDefault();
    }
    else {
        window.location.href = 'aboutus.html';
    }
});

参考: -

indexOf() functionality

如果您只想禁用两个特定网址上的按钮,请使用if提供的console.log(window.location.href);条件中的完整路径。