在jquery中的onmove事件等价物

时间:2012-03-29 03:13:06

标签: javascript jquery

查询中onmove的等效名称是什么。这是onmove在直接javascript中所做的事情。

仅限IE支持:

当元素左上角的位置发生变化时发生。

jquery中是否有一个事件可以做到这一点。

2 个答案:

答案 0 :(得分:0)

使用本机事件侦听器是不可能的。但是,您可以将函数放在使元素移动的函数中实现它。

例如:

<div id="box"></div>
<script>
    function blah(){
        //onmove things...
    }

    function movebox(e){
        blah(e);  //link to the function
    }
</script>

答案 1 :(得分:0)

由于多种原因,元素相对于文档的位置可能会发生变化 - 包括像HTML5-Video这样的边缘情况,在观看后显示较小的预览图片,这不是通过听取点击,加密,重新加载和任何其他事件。

由于jQuery没有onmove的内置支持,你可以做的最好的选择就是捕捉许多可以移动你的元素然后过滤的事件,无论你的元素是什么真的移动了,这可以通过将当前jQuery.fn.offset()值与上次事件出现时的值进行比较来完成。

此解决方案涵盖了可能会移动元素的两个最重要的事件(页面生成和窗口大小调整):

jQuery(window).on('load resize', function () {
    /* code here... */
}

如果你的DOM可能会改变,你可以改用:

jQuery(window).on('load resize DOMSubtreeModified', function () {
    /* code here... */
}

但如前所述here

,请小心使用最后一个

这些事件经常被称为 ,对于您的客户电脑而言,每个事件不执行任何复杂任务或至少检查您的元素的位置 >真的改变(如上所述)。