Mouseup取消Mousedown下的所有事件

时间:2014-01-31 19:50:37

标签: javascript jquery html css

我正在尝试使用div实现Jquery调整大小代码。请参阅here

现在它按照鼠标移动移动。代码在这里:

$('#top-left').mousedown(function(){
    event.stopPropagation();
    $(document).mousemove(function(event){
        var current_width=$(".active").width();
        var current_height=$(".active").height();
        var position = $(".active").position();

        var new_width=current_width+(position.left-event.pageX);

        temp=$("#mouse").html();
        $("#mouse").html(temp+"<br />new_width= "+new_width);

        $(".active").css({top:event.pageY+"px"});
        //$(".active").css({width:new_width+"px"}); 
    });
});
$('#top-left').mouseup(function(){
    event.stopPropagation();
});

我希望在调用mouseup时,删除使用当前div.active注册的事件。如果我不清楚,请告诉我。

检查JSFiddle Here

1 个答案:

答案 0 :(得分:0)

如果您希望div.active没有绑定任何事件,请执行以下操作:     $( 'div.active')。解除绑定()

供参考:unbind() api reference

此外,由于您正在处理添加到DOM的元素,因此使用.click()将无效,在处理动态元素时,我们on()作为引用here

但是,因为元素是动态的,所以你需要使用on()方法的'delegate'特性:

$( "parentElement" ).on( "click", "clickedElement", function() {
    alert( $( this ).text() );
    console.log(this); // will reference "clickedClicked", not "parentElement"
});

简而言之,通过侦听从子元素冒泡到非动态父元素的事件来进行分段。因此,由于动态子项的事件会冒泡,因此父元素将始终从其子元素中获得点击。