2012-05-07 56 views
0

我已經在那裏我已經通過股利綁定發出

$('body').bind('touchmove', false); 

現在我加載頁面動態成點擊按鈕後一個div禁用頁面上滾動的文檔......

$('#myContentPage').load('details.html #myCOntentPage'); 

我想在加載完成後僅從div #myContentPage中解除'touchmove'的綁定。 我試過

$('#myContentPage').bind('touchmove', true);頁面加載後,但它似乎不工作。 HTML結構後加載之前

HTML結構

<body> 
    <div id="header"/> 
    <div id="details"/> 
    <div id="myContentPage" /> 
</body> 

負載

<body> 
    <div id="header"/> 
    <div id="details"/> 
    <div id="myContentPage" > 
     <div ... /> 
     <div.... /> 
    </div> 
</body> 
+0

試試我的[更新答案] (http://stackoverflow.com/a/10478450/601179)。 – gdoron

回答

0

的問題是,你不能卸下touchmove事件回調形式'#myContentPage',因爲它連接到他的父母與<body> ,修復它的最好方法是將一個新的處理程序附加到#myContentPage,該處理程序將停止傳播到<body>,從而取消該事件。

$('#myContentPage').load('details.html #myCOntentPage', function() { 
    $('#myContentPage').bind('touchmove', function(event){ 
     event.stopPropagation() ; 
    }); 
}); 

如果不幫助(從某種未知的原因),試試這個:

$('#myContentPage').load('details.html #myCOntentPage', function() { 
    $('body').unbind('touchmove'); 
    $('body').on('touchmove', ':not(#myContentPage)', function(){ 
     return false; 
    }); 
}); 
+0

應該是'#myCo'而不是'#myCO'

+0

@NiftyDude。這是他的代碼。但你可能是對的。我編輯它。謝謝 – gdoron

+0

@NiftyDude。其實在我的代碼中有一個真正的問題......但我現在修復了它。 – gdoron

0
$('#myContentPage').off('touchmove'); // if you bind event using `on()` 

OR

$('#myContentPage').unbind('touchmove'); 

所以,

$('#myContentPage').load('details.html #myCOntentPage', function() { 
    $('#myContentPage').off('touchmove'); 
}); 
+0

_「off()方法刪除使用.on()附加的事件處理程序。」_ – gdoron

+0

@gdoron我知道,編輯了我的回答。 – thecodeparadox

0

侑新的頁面加載後,你可以用它來解除綁定您以前附加事件

$('#myContentPage').unbind('touchmove'); 
+0

謝謝大家,但沒有任何建議似乎工作我試圖解綁,關閉..我在ipad上檢查它 我也仔細檢查過,如果這是正確的div,但仍然無法解決它:( – user1184100

+0

閱讀我更新的答案,它不能這樣做。 – gdoron

0

嘗試:

$('body').bind('touchmove', function(ev){ 
    if (ev.target.id != "myContentPage"){ 
    return false; 
    } 
}); 

相反的: $('body').bind('touchmove', false);