0

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

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

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 鼠标按下时蓝色不会调整大小) http://jsfiddle.net/2sfFW/

4

2 回答 2

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/

于 2013-03-05T22:04:46.227 回答
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(){
于 2013-03-05T21:03:01.367 回答