使用jquery / js同时调整两个元素的大小

时间:2013-03-05 20:41:23

标签: javascript jquery resize

我一直试图同时调整两个窗口的大小,但由于某种原因它不起作用。 我试图捕捉错误,但没有。

注意:我不想使用jquery resize,因为它没有快速的inteval来检查resizes

JAVASCRIPT:

function _u(e){
    try {
        e.parent('.boss').find('.first').width( e.width() ); //tried with parent('.boss').next('.first') or directy with prev('.first')
    } catch(err){alert(err);}
}

$(document).ready(function(){
    $(".data").each(function(){
        var resizerint;
        $(this).mousedown(function(){
            try {
                var eee = $(this);
                var resizerint = setInterval(function(){
                        try {
                            _u( eee );
                        } catch(err){alert(err);}
                    },10); // i need it 10ms
            } catch(err){alert(err);}

            $('.test').html('<font style="position:absolute;top:0;right:0;color:red;"> mouse DOWN </font>');
        }).mouseup(function(){
            try{
                clearInterval(resizerint);
                } catch(err){alert(err);}

            $('.test').html('<font style="position:absolute;top:0;right:0;color:green;"> mouse UP </font>');
        });
    });
});

和HTML:

<div class="boss">
    <div class="first">
        <table>
            <tr>
                <td>
                    <div class="title">ONEEEEE</div>
                </td>
            </tr>
        </table>
    </div>
    <div class="second">
        <textarea class="data" > ONEEE TEXTY TESTY NJAMMM! </textarea>
    </div>
</div>

<div class="boss">
    <div class="first">
        <table>
            <tr>
                <td>
                    <div class="title">TWOOOOOO</div>
                </td>
            </tr>
        </table>
    </div>
    <div class="second">
        <textarea class="data" > TWOOO TEXTY TESTY NJAMMM! </textarea>
    </div>
</div>

<div class="text"></div>

提前感谢您提供的任何帮助。

JSFIDDLE(如果您看到,在TEXTAREA的MOUSEDOWN时,蓝色的重新调整大小) http://jsfiddle.net/2sfFW/

2 个答案:

答案 0 :(得分:1)

我的第一个答案是缺少“$”,但它没有解决问题。

在某种程度上让它工作,但你必须先在文本字段中点击它才能初始化。我用你的蓝色版本作为可视化工具。

正确的jquery遍历是

 e.parent().parent('.boss').find('.first')

 e.parents('.boss').find('.first')

您必须使用复数版本,因为它上面有两个父div。使用parent()。parent()更具体,但在这种情况下可能不是必需的。

http://jsfiddle.net/aQKVD/1/

如果你删除mouseup / mousedown处理程序,它将在document.ready初始化,我认为可能是你想要的。除非您有其他需要,否则您不一定需要清除变量,因为.each()会创建与所讨论的特定div绑定的函数的单独实例。这是一个类似的版本:

http://jsfiddle.net/aQKVD/2/

答案 1 :(得分:0)

不能在JSfiddle中修复它,但对于初学者来说,你已经离开了“$”。我已经建立了一个JSfiddle链接,以便其他人可以尝试。 http://jsfiddle.net/aQKVD/

function _u(e){
try {
    e.parent('.boss').find('.first').width( e.width() ); //tried with parent('.boss').next('.first') or directly with prev('.first')
    } catch(err){alert(err);}
}

$(document).ready(function(){
   (".data").each(function(){

最后一行应该是

   $(".data").each(function(){