jQuery - if / else - 更改变量的值

时间:2013-08-01 19:07:53

标签: jquery if-statement

首先让我说我是jQuery的完整新手,我很难解决当前的问题。我目前正在开发一个使用jQuery ScrollTo插件的项目。我正在尝试根据我在网页上的当前位置更改scrollTo函数的轴。

$(document).ready(function() {
var $current_position = thuis;
var $axis = 'xy';

$('.box').stop().scrollTo(thuis, 0);

$(window).resize(function() {
    $('.box').stop().scrollTo($current_position, 0);
}); 

// Scroll function
$('.toc a').click(function() {
    var $target = $(this.hash);
    if($current_position == bezoekers_info || liniepad_info){
        $axis = 'xy';
        alert("xy");
    } else {
        $axis = 'yx';
        alert("yx");
    }
    $('.box').stop().scrollTo($target, 1000, { queue:true, axis: $axis }, {easing: "easeInOutQuart"});
    $current_position = $target;
    return false;
});
});

该功能基本上有效,但不会改变轴值(它将保持在'xy')。无论我的立场如何,它总是会以“xy”提醒我。但我知道$ current_position应该有效,因为它在window.resize函数中有效。如果我将顶部的$ axis var更改为'yx',它也会起作用。

我在这里缺少什么,显然我的if / else语句出了问题?

2 个答案:

答案 0 :(得分:1)

添加此项以检查您的代码...

alert($current_position + ', ' + bezoekers_info + ', ' + liniepad_info);

如果这些值符合预期,这应该可以解决问题:

if( ($current_position == bezoekers_info) || ($current_position == liniepad_info) ){...

答案 1 :(得分:1)

我设法用这个来修复它:

        var $target = $(this.hash);
        if( (this.hash.substr(1) == "bezoekers_info") || (this.hash.substr(1) == "liniepad_info") ){
            $axis = 'yx';
        } else {
            $axis = 'xy'
        }

显然,如果你检查this.hash的真实文本值,你可以让它工作。不确定它是否正确编码,但至少它现在有用。