###実現したいこと
要素をリサイズした際の、ウィンドウへのバブリングを止めたいです。
###発生している問題
「.box」をリサイズすると、「要素をリサイズ中です」だけでなく「画面をリサイズしました」まで表示されてしまいます。
###該当のソースコード
動くサンプル:http://jsfiddle.net/ht72skx4/
html
1<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css" type="text/css" media="all" /> 2 3<div class="box" style="width:100px; height: 100px; border:5px solid #000; background: #ff0000;"></div>
jQuery
1$('.box').resizable({ 2 handles: 'e', 3 resize : function (event, ui) { 4 resizeEvent(); 5 }, 6 stop : function (event, ui) { 7 stopEvent(); 8 } 9}); 10 11var resizeTimer = null; 12$(window).resize(function() { 13 clearTimeout(resizeTimer); 14 resizeTimer = setTimeout(function() { 15 console.warn('画面をリサイズしました'); 16 }, 200); 17}); 18 19function stopEvent(){ 20 console.log('要素をリサイズしました'); 21} 22function resizeEvent(){ 23 console.log('要素をリサイズ中です'); 24}
###試したこと
おそらくバブリングだろうと思い下記2パターン試しました。要素のリサイズ中の「stopPropagation」と、resizableへの「stopPropagation」で、「追加」とコメントがある箇所です。
▼要素のリサイズ中の「stopPropagation」
jQuery
1$('.box').resizable({ 2 handles: 'e', 3 resize : function (event, ui) { 4 event.stopPropagation(); //追加 5 resizeEvent(); 6 }, 7 stop : function (event, ui) { 8 stopEvent(); 9 } 10});
▼resizableへの「stopPropagation」
$('.box').resizable({ handles: 'e', resize : function (event, ui) { resizeEvent(); }, stop : function (event, ui) { stopEvent(); } }) // 追加 .on('resize', function (event) { event.stopPropagation(); });
いずれも実現には至らず、質問させて頂く運びになりました。
解決方法をご存じの方いらっしゃいましたらご教授願えませんでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/21 08:07