以下是我的JavaScript(mootools)代码:
$('orderNowForm').addEvent('submit', function (event) {
event.preventDefault();
allFilled = false;
$$(".required").each(function (inp) {
if (inp.getValue() != '') {
allFilled = true;
}
});
if (!allFilled) {
$$(".errormsg").setStyle('display', '');
return;
} else {
$$('.defaultText').each(function (input) {
if (input.getValue() == input.getAttribute('title')) {
input.setAttribute('value', '');
}
});
}
this.send({
onSuccess: function () {
$('page_1_table').setStyle('display', 'none');
$('page_2_table').setStyle('display', 'none');
$('page_3_table').setStyle('display', '');
}
});
});
Run Code Online (Sandbox Code Playgroud)
在IE以外的所有浏览器中,这都可以.但在IE中,这会导致错误.我有IE8所以在使用它的JavaScript调试器时,我发现该event对象没有preventDefault导致错误的方法,因此表单已经提交.在Firefox(我发现使用Firebug)的情况下支持该方法.
任何帮助?
我有一个小"浮动工具箱" - 一个div与position:fixed; overflow:auto.工作得很好.
但是当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素"接管""滚动请求":工具框后面的文档滚动.
- 哪个很烦人而不是用户"要求".
我正在使用jQuery并认为我可以使用event.stoppropagation()来阻止此行为:
$("#toolBox").scroll( function(event){ event.stoppropagation() });
它确实进入了函数,但仍然无论如何传播(文档滚动)
- 在SO(和Google)上搜索这个主题非常困难,所以我不得不问:
如何防止滚动事件的传播/冒泡?
编辑:
工作解决方案感谢amustill(以及Brandon Aaron的mousewheel-plugin:https:
//github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
$(".ToolPage").bind('mousewheel', function(e, d)
var t = $(this);
if (d > 0 && t.scrollTop() === 0) {
e.preventDefault();
}
else {
if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) {
e.preventDefault();
}
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个div,带有滚动条,当它到达结尾时,我的页面开始滚动.无论如何我可以阻止这种行为吗?
如何防止滚动冒泡?
以下示例不起作用:
<!DOCTYPE html>
<html>
<head>
<title>Scroll Bubbling</title>
<style>
#menu {
width: 80px;
height: 150px;
background: red;
overflow: auto;
}
</style>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function isScrollOnBound( scrollContainer ) {
if ( $( scrollContainer ).scrollTop() === 0 ||
$( scrollContainer ).scrollTop() + $( scrollContainer ).innerHeight() >= $( scrollContainer )[0].scrollHeight ) {
return true;
} else {
return false;
}
}
$(function() {
$( '#menu' ).on( 'scroll', function(e) {
if ( isScrollOnBound( this ) ) {
e.stopPropagation();
}
});
$( …Run Code Online (Sandbox Code Playgroud) 我想在我的一个页面中禁用滚动.我不想写
scroll(0,0) 要么 scrollTo(0,0)
在滚动事件中,这将产生"跳跃"的性质.我不能有类似的东西
event.preventDefault()
Run Code Online (Sandbox Code Playgroud)
取消活动?
我有一些div可以保存您可以滚动的信息.但是,当您点击顶部或底部时,它会更改为滚动整个页面的浏览器滚动.
我想禁用外部滚动,而鼠标在这个特定的div内(有三种这种类型的div).
我试图实现的一个例子是youtubes播放列表选择器.
这是youtube上的一个示例将鼠标悬停在热门上传部分中并尝试上下滚动.
编辑:只是尝试在另一个浏览器中使用该链接,视频选择部分似乎没有显示,但它是启用它的"添加到播放列表"部分.
有人知道这样做的方法吗?