Tôi đang tạo một ứng dụng web nhỏ cho iPad và tôi có một số yếu tố tôi ngăn người dùng di chuyển bằng cách ngăn mặc định trên sự kiện touchmove. Tuy nhiên, tôi có một tình huống mà tôi cần người dùng có thể cuộn một phần tử con.Ngăn chặn touchmove mặc định trên cha mẹ nhưng không phải con
Tôi đã cố gắng sử dụng e.stopPropagation(); nhưng không may mắn! Tôi cũng cố gắng phát hiện phần tử dưới ngón tay và đặt e.preventDefault(); bên trong một tuyên bố nếu, nhưng một lần nữa, không có may mắn. Hoặc có thể tôi vừa bị trộn lẫn ...
Bất kỳ ý tưởng nào? Loại bỏ các divs .scroll từ div #fix là một phương sách cuối cùng thực sự vì nó sẽ gây ra tất cả các loại nhức đầu.
EDIT
tôi quản lý để sắp xếp nó. Có vẻ như tôi không hiểu việc sử dụng .stopPropagation(); oops!
Mã làm việc:
<div id="fix">
<h1>Hi there</h1>
<div class="scroll">
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
</div>
<div class="scroll">
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
</div>
</div>
Và Javascript:
$('body').delegate('#fix','touchmove',function(e){
e.preventDefault();
}).delegate('.scroll','touchmove',function(e){
e.stopPropagation();
});
Thử thêm trả về false; vào cuối xử lý sự kiện – jancha
ghi ** stopPropagation ** thay vì ** stopPropogation ** – udidu
Ha, yea, may mắn là tôi đã thực sự nhập chính xác mã của mình;) – will