2014-02-19 43 views
1

我使用jQuery動態啓用或禁用這樣snap.js:我怎麼能動態地啓用和禁用snap.js(由jakiestfu)

$(window).resize(function() { 
    if ($(window).width() < 1024) { 
     snapper.enable(); 
    } else { 
     snapper.disable(); 
    } 
}); 

但這似乎沒有工作。我認爲這對於不使用事件處理程序有些幫助,但我不知道如何。

在此先感謝!

編輯:

這也似乎沒有工作:

addEvent(window, 'resize', function(){ 
    if ($(window).width() < 1024) { 
     snapper.on('drag'); 
    } else { 
     snapper.off('drag'); 
    } 
    }); 

回答

1

只是不要初始化snap.js當視大於1,024像素更大。爲什麼要提到某個東西的實例,永遠不會被使用?

或做:snapper.off('drag');

+0

我已經嘗試過,但(例如)在ipad時,在portret視圖中,我希望啓用snapper,並且在橫向視圖中我想禁用它(因爲bootstrap菜單中斷點)。 js,它將始終啓用,即使您更改視圖。 (同樣適用於調整瀏覽器窗口大小)。我給了snapper.off('drag');試一試,讓你知道它是否有效。 Tnx爲您的答案! – user3329751

1

你如何讓甲魚變量?如果您在每次調整大小時都進行新的捕捉 - 這就是問題所在。你必須保存笛鯛

+0

我得到像這樣的笛卡爾變量: var snapper = new Snap({0}){document.getElementById('content'), touchToDrag:false, }); – user3329751

0

我也有這個問題(snapper.disable();似乎沒有做任何事情),我發現'禁用',然後'重新啓用',唯一的辦法就是使用Snap導航內置忽略此區域功能,然後使用CSS媒體查詢也隱藏觸發導航按鈕。

var snapper = new Snap({ 
    element: document.getElementById('content') 
}); 

$(window).resize(function() { 
    //initialise navigation 
    if ($(window).innerWidth() >= 968) { 
     $('body').attr('data-snap-ignore','true'); 
    } else { 
     $('body').removeAttr('data-snap-ignore'); 
    } 
}); 

這將禁用拖動整個屏幕(而不是功能),所以它有效地隱藏。