2013-03-05 66 views
0

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

注:我不想使用jQuery的调整,因为它没有核对,对于一个快速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(如果你看到,蓝色的犯规Resize在MOUSEDOWN在TEXTAREA) http://jsfiddle.net/2sfFW/

+0

它究竟做了什么,是不是你想要的工作?你能用一个例子发布一个jsfiddle吗? – Derek 2013-03-05 20:51:16

+0

你想达到什么目标,有多少不起作用?什么是约束 - 你不想使用什么?为什么? – 2013-03-05 21:02:43

+0

@甜菜根 - 甜菜根太多的问题,我编辑,你可以看到jsfiddle的例子 – diti 2013-03-05 21:13:38

回答

1

我的第一个答案是,有一个失踪“$”,但它并没有解决这个问题。

得到它在某种程度上工作,但你必须先点击进入文本字段,然后才会初始化。我用你的蓝色版本作为可视化工具。

正确的jQuery遍历

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

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

您,是因为有它上面的两个母公司的div使用复数形式。使用parent()。parent()更具体,但在这种情况下可能不需要。

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

如果去掉鼠标松开/鼠标按下处理程序将在初始化的document.ready相反,我认为这可能是你想要的。除非您有其他需要,否则您不一定需要清除该变量,因为.each()创建了与特定div相关的函数的单独实例。这是一个这样的版本:

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

+0

是的,这是做的伎俩,谢谢队友:) – diti 2013-03-05 22:14:22

+0

代码组织得像这样:http://jsfiddle.net/2sfFW/1/ – 2013-03-06 01:04:13

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(){ 
+0

nope,它不是,没有工作,添加.first {background-color:blue;}来测试它但没有工作,“.first”不调整 – diti 2013-03-05 21:10:05