带有var的Jquery开关

时间:2014-04-20 12:53:31

标签: javascript jquery

我有以下问题,如下所示,问题是我无法在案例之间记录或发送变量c。我认为这对你来说很容易,因为你很聪明,我已经检查了jQuery的api文档,但我找不到它。

    $('.navbar-nav>li').click(function() {
    var c = $(this).attr("class"); //This works, I getting a class name
    switch (true) {
        case $(this).hasClass('1'):
            console.log(c); // Udentified That is a problem
            call("x",c);
        break;
        case $(this).hasClass('2'):
            call("x",c);
        break;
        case $(this).hasClass('3'):
            call("x",c);
        break;
        case $(this).hasClass('4'):
            call("x",c);
        break;
        case $(this).hasClass('5'):
            call("x",c);
        break;
    }
});
function call(o,c){ // Not important part 
    $.ajax({
        url: "/" + o,
        cache: false,
        async: true,
        dataType: "html",
        success: function (data) {
            $('.content').empty().html(data);
            var t = document.location.hash = o;
            $('.nav.navbar-nav li').removeClass('active', function(){
            var $this = $(this);
            if (!$(this).hasClass('active')) {
                    $(this).addClass('active');
            }

            });
        }
    });
}

JSFiddle for you http://jsfiddle.net/9xafe/9/感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案:

    $('.navbar-nav>li').click(function() {
    var c = $(this).attr("class"); //This works i getting a class name
    switch (true) {
        case $(this).hasClass('1'):
            console.log(c); // This dont works on my website
            call("domov", c);
        break;
        case $(this).hasClass('2'):
            call("x",c);
        break;
        case $(this).hasClass('3'):
            call("x",c);
        break;
        case $(this).hasClass('4'):
            call("x",c);
        break;
        case $(this).hasClass('5'):
            call("x",c);
        break;
    }
});
function call(o, c){
    console.log(c); // This is working
    $.ajax({
        url: "/" + o,
        cache: false,
        async: true,
        dataType: "html",
        success: function (data) {
            $('.content').empty().html(data);
            var t = document.location.hash = o;
            $('.nav.navbar-nav li.' + c).removeClass('active', function(){
            var $this = $(this);
            if (!$(this).hasClass('active')) {
                    $(this).addClass('active');
            }

            });
        }
    });
}