[英]how to reverse e.preventDefault() from the body?
我有這個:
function dontMove(event) {
// Prevent page from elastic scrolling
event.preventDefault();
}
&
<body ontouchmove="dontMove(event);">
在ipad上,這使它無法拖動,並且在您拖曳整個頁面以顯示時,ipad不會具有灰色背景。
我在另一個網站上看到,它有可能在另一個div中反轉,因此div完全可以再次拖動。
有誰知道如何扭轉它?
我還嘗試使用它來防止它(在document.ready中):
document.ontouchmove = function(e){
e.preventDefault();
}
&啟用它:
function doTouchMove(state) {
document.ontouchmove = function(e){
return state;
}
}
然后我把它激活。
<img ontouchmove="doTouchMove(state);" src="../jpeg/pages/01.jpg" class="touch"/>
這似乎不起作用,這有什么問題嗎? 或其他任何可行的方式?
這就是為什么bubbles
要好一些的原因(至少在我看來)。
bubbles
是跨瀏覽器的,因此您應該可以替換。
e.preventDefault()
同
e.bubbles = false;
然后在您的代碼的后面,您可能會將bubbles
重置為true
。
如果以上都不是,請忽略。 :d
另一種選擇(如果您僅使用iPad的話)是顛倒DOM的工作方式。
document.addEventListener('click', function(){}, true );
這將迫使事件朝另一個方向進行。
Document click execute | | v Element click execute
我設法解決了
$('#form1').unbind('submit').submit();
您可以通過僅在事件來自身體時才阻止事件來解決它:
document.ontouchmove = function(event){
if(event.target.tagName == "BODY"){
event.preventDefault();
}
}
試試這篇文章, 帶有event.preventDefault的HTML,並從body標簽中刪除ontouchmove 。
我的看起來像這樣
<script>
// Get touch move enevt from IOS
document.ontouchmove = function (event) {
if (!event.elementIsEnabled)
event.preventDefault();
};
// Get touch move enevt from IOS
function enableOnTouchMove(event) {
event.elementIsEnabled = true;
};
</script>
然后在所需的每個標簽上啟用ontouchmove。 即:
<div ontouchmove="enableOnTouchMove(event)" id="listing">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.