Ticket #7514 (closed bug: notabug)

Opened 3 years ago

Last modified 9 months ago

resizable() triggers a $(window).resize with jQuery 1.6.1

Reported by: slavik524 Owned by:
Priority: minor Milestone: 1.9.0
Component: ui.resizable Version: 1.8.13
Keywords: Cc:
Blocking: Blocked by:

Description

When start resizing a resizable div, $(window).resize fires immediately and continues to trigger until I stop resizing a div. It only behaves this way with jQuery 1.6.1 (all is fine with 1.5.2). Sample code:

<!DOCTYPE html>
<html>
<head>
    <script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui.js" type="text/javascript"></script>

    <style type="text/css">
        #div1 {
            width: 200px;
            height: 200px;
            top: 100px;
            left: 100px;
            position: relative;
            background: #888;
        }
        .ui-resizable-e {
            width: 12px;
            height: 100%;
            top: 0;
            right: 0;
            position: absolute;
            background: #333;
            cursor: e-resize;
        }
    </style>

    <script type="text/javascript">
        $(function() {
            $("#div1").resizable({ handles: "e" });
            $(window).resize(function() { alert("Window resized"); });
        });
    </script>

</head>
<body>

<div id="div1"></div>

</body>
</html>

Change History

comment:1 Changed 3 years ago by scott.gonzalez

  • Status changed from new to closed
  • Resolution set to invalid

This is a bug in jQuery core:  http://bugs.jquery.com/ticket/9841

comment:2 Changed 3 years ago by brotherli

Can be workarounded with target checking:

$(window).resize(function(e) {
  if (e.target == window)
    /* do your stuff here */;
});

comment:3 Changed 15 months ago by rcoleman

I understand why this and the jQuery core bugs were closed as invalid, but should we not be able to prevent the resize event from bubbling within the Resizable resize event handler? Event.stopPropagation() and returning false have no effect.

comment:4 Changed 15 months ago by scott.gonzalez

Event.stopPropagation() and returning false have no effect.

That is certainly not true. Please provide a reduced test case showing this behavior.

comment:5 Changed 11 months ago by scott.gonzalez

#8881 is a duplicate of this ticket.

comment:6 Changed 11 months ago by scott.gonzalez

#9350 is a duplicate of this ticket.

comment:7 Changed 9 months ago by adriantoine

This issue still occurs even when using event.stopPropagation() and 'return false' on the resize callback:  http://jsfiddle.net/Alshten/LXqLz/

Last edited 9 months ago by adriantoine (previous) (diff)

comment:8 Changed 9 months ago by scott.gonzalez

There is no propagation to stop inside the callback. The callback occurs *after* the event has propagated.

Note: See TracTickets for help on using tickets.