相关疑难解决方法(0)

event.preventDefault()函数在IE中不起作用

以下是我的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)的情况下支持该方法.

任何帮助?

javascript events internet-explorer mootools preventdefault

202
推荐指数
5
解决办法
20万
查看次数

当内部元素滚动位置到达顶部/底部时,防止滚动父元素?

我有一个小"浮动工具箱" - 一个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)

javascript jquery scroll event-bubbling event-propagation

190
推荐指数
12
解决办法
13万
查看次数

滚动子div滚动窗口,我该如何阻止?

我有一个div,带有滚动条,当它到达结尾时,我的页面开始滚动.无论如何我可以阻止这种行为吗?

html javascript

89
推荐指数
8
解决办法
7万
查看次数

防止滚动冒泡

如何防止滚动冒泡?

以下示例不起作用:

<!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)

javascript css jquery scroll event-bubbling

10
推荐指数
1
解决办法
3598
查看次数

停用正文的滚动但保留滚动条

如何禁用body滚动条,但让它在屏幕上保持可见?作为一个例子,请参阅Facebook的影院模式:

Facebook屏幕

html css scroll

7
推荐指数
1
解决办法
1万
查看次数

JavaScript - 取消滚动事件

我想在我的一个页面中禁用滚动.我不想写

scroll(0,0) 要么 scrollTo(0,0)

在滚动事件中,这将产生"跳跃"的性质.我不能有类似的东西

event.preventDefault()
Run Code Online (Sandbox Code Playgroud)

取消活动?

javascript scroll

5
推荐指数
1
解决办法
1万
查看次数

在可滚动的div中禁用外部滚动

我有一些div可以保存您可以滚动的信息.但是,当您点击顶部或底部时,它会更改为滚动整个页面的浏览器滚动.

我想禁用外部滚动,而鼠标在这个特定的div内(有三种这种类型的div).

我试图实现的一个例子是youtubes播放列表选择器.

这是youtube上的一个示例将鼠标悬停在热门上传部分中并尝试上下滚动.

编辑:只是尝试在另一个浏览器中使用该链接,视频选择部分似乎没有显示,但它是启用它的"添加到播放列表"部分.

有人知道这样做的方法吗?

html javascript jquery

5
推荐指数
1
解决办法
5330
查看次数