jQuery响应式悬停,然后点击swtich

时间:2015-07-10 06:49:25

标签: javascript jquery

如果在窗口大小更改时切换hoverclick

function checkWidth() {
var windowsize = $window.width();
    if (windowsize > 480) {
        $('#clickPoint').on('click', function(){
        ......//code
        });
    }else {
        $('#clickPoint').on('hover',function(){
        ......//code        
        });
    }
}();

$(window).resize(checkWidth);

但是我发现悬停总是打开,所以我不得不改变这种方式

var windowsize = $window.width();
        if (windowsize > 480) {
            $('#clickPoint').on('click', function(){
            ......//code
            });
        }else {
           $('#clickPoint').off('click', function(){
            ......//code
            });
            $('#clickPoint').on('hover',function(){
            ......//code        
            });
        }
    }();

但如果有人有更好的解决方案,仍然无法正常工作?谢谢

2 个答案:

答案 0 :(得分:1)

仔细查看$window.width()。我怀疑。尝试将其更改为$(window).width()。更改您在顶部提供的代码。因为底部的代码看起来搞砸了。

还要确保使用警报或日志检查窗口宽度。只是为了确保if语句正常工作。

答案 1 :(得分:0)

尝试这样

        var permit=2;
        $('#clickPoint').on('click', function(){
            if(permit==0)
            {
        ......//code
            }
        });
             $('#clickPoint').on('hover',function(){
            if(permit==1)
            {
        ......//code        
            }
        });
function checkWidth() {
var windowsize = $(window).width();
    if (windowsize > 480) {
        permit=0;

    }else {
       permit=1;
    }
}

$(window).resize(checkWidth);