2014-12-06 55 views
0

我使用這個代碼https://github.com/ksloan/jquery-mobile-swipe-list的和平,我修改了它的工作正常。 但是代碼有兩個按鈕,即左和右。在我的項目中,我只有一個在右側,所以向左滑動即可發現它,但我無法找到如何消除右側的滑動,因爲我沒有左側的任何按鈕,每次滑動時都會崩潰方向。JQuery手機如何防止li項目向右滑動?

有什麼建議嗎?

代碼:

$(function() { 
    function prevent_default(e) { 
    e.preventDefault(); 
    } 
    function disable_scroll() { 
    $(document).on('touchmove','#myPostsList .ui-content', prevent_default); 
    } 
    function enable_scroll() { 
    $(document).unbind('touchmove',' #myPostsList .ui-content', prevent_default); 
    } 
    var x; 
    $(document) 
    .on('touchstart', '.swipe-delete li > a', function(e) { 
    console.log(e.originalEvent.pageX);  
    ///// GET ID OF SELECTED POST AND STORE IN A DIV FOR AJAX ///// 
    document.getElementById("myPostIDStorage").value = $(this).attr('data-key'); 

    $('.swipe-delete li > a.open').css('left', '0px').removeClass('open') ;// close em all 
    $(e.currentTarget).addClass('open'); 
    x = e.originalEvent.targetTouches[0].pageX // anchor point 


    }) 
    .on('touchmove', '.swipe-delete li > a', function(e) { 

    var change = e.originalEvent.targetTouches[0].pageX - x; 
    change = Math.min(Math.max(-100, change), 100); // restrict to -100px left, 0px right 
    e.currentTarget.style.left = change + 'px'; 
    if (change < -10) disable_scroll() // disable scroll once we hit 10px horizontal slide 
    }) 
    .on('touchend', '.swipe-delete li > a', function(e) { 
    var left = parseInt(e.currentTarget.style.left); 

    var new_left; 
    if (left < -35) { 
    new_left = '-100px'; 
    } /*else if (left > 35) { 
    new_left = '100px' 
    } */ else { 
    new_left = '0px'; 
    } 
    //e.currentTarget.style.left = new_left 
    $(e.currentTarget).animate({left: new_left}, 200) 
    enable_scroll(); 
    }); 

});

回答

1

請確保您有所有的原代碼

所有你需要做的是改變數學一點點

在那裏說change = Math.min(Math.max(-100, change), 100);

變化change = Math.min(Math.max(-100, change), 0)

改變100 0是指從左至右移動的0像素,所以它不動

演示

http://jsfiddle.net/yvjr0zqf/

,如果你想在右側停止移動扭轉數學,但這次100加數字change = Math.min(Math.max(0, change), 100)