3

我想要实现的是,每当您单击图像时,它都会更改 window.location url,在'#'和之间切换'#footer'。现在,我只有这个:

<script>
function clickarrow(){

    var rd=Math.floor(Math.random()*11)

    if (rd > 5){
        window.location="#footer";      
        }

    else{
        window.location="#";
    }
}
</script>

如您所见,这使得进行任何一项更改的几率为 50:50。它可以作为临时修复,但有时您必须单击多达 6 次才能生效。

有没有一种方法可以正确切换window.location

我正在使用 jQuery 1.9。

4

2 回答 2

3

如果您尝试可靠地切换哈希,而不是使用随机机会,请尝试以下操作:

function clickarrow(){
    var showFooter = true;

    return function () {
        if (showFooter) {
            window.location.hash = "footer";
        } else {
            window.location.hash = "";
        }

        showFooter = !showFooter;
    }
}

jQuery(function () {
    jQuery('#myToggleLink').click(clickarrow());
});

注意:通常在绑定事件时,必须传入函数引用。在这里,我调用它是clickarrow()因为它按设计返回一个函数。返回的函数通过闭包封装了切换变量。

于 2013-05-20T19:43:35.363 回答
1

您可以使用数据属性来告诉下一步是什么:

$('#arrow').click(function() {
    if ($(this).data('footer'))
    {
        window.location="#footer"; 
        $(this).data('footer', 'false');
        alert('b');
    }
    else
    {
        window.location="#";
        $(this).data('footer', 'true');
        alert('a');
    }
});
于 2013-05-20T19:57:30.497 回答