2012-09-05 57 views
0

我需要调用嵌套div上的jquery.animate。 DIV的结构是这样的jquery中的嵌套选择器

<div id="jsPlumb_1_4" class="container"> 
     <div id="PlanItemPL1" class="PlanItem"> 
      <div id="window1" class="window"> 
      </div> 
     </div> 
</div> 

我有兴趣做的操作,如MouseDown事件,在div类窗口动画的事件。有人可以让我知道我应该写什么选择器。谢谢您的帮助。

+0

你想要内部div或所有div上的动画吗? –

+0

关于内部div(div class =“window”是我感兴趣的内容。) –

+0

@KevinB:我没有想到它。我认为正常的宽度和高度是可行的。纠正我,如果我错了。 –

回答

1

我建议,没有这一问题的进一步细节,一个通用的方法:

$('#jsPlumb_1_4').on('mousedown', function(e){ 
    $(this).find('div.window').animate({'width' : '100px'}, 1000); 
}); 

JS Fiddle demo

在该演示中,我的mousedown事件绑定到#jsPlumb_1_4元素(事件将从任何其子元素的传播),并触发包含div.window元素的animate()

为了使它更有趣,我加入一个mouseup事件也使上mousedowndiv.window缩小,并在mouseup它的增长:

$('#jsPlumb_1_4').on('mousedown mouseup', function(e){ 
    var newWidth = e.type == 'mousedown' ? '50%' : '80%'; 
    $(this).find('div.window').animate({'width' : newWidth}, 1000); 
});​ 

JS Fiddle demo

e.type检索事件(mouseupmousedown),并且newWidth变量或者是50%80%取决于事件是否等于mousedown与否。

+0

我不知道为什么它仍然不能在我的代码中工作。是不同的div的差异可以导致问题? –

+0

对不起?你可以在[JS Fiddle](http://jsfiddle.net/)上发布你正在使用的代表性演示,以及你正在尝试的内容吗?然后我可以尝试看看哪些功能无效。 –

+0

你可以使用.mousedown(function(){$(this).find('div.window')。animate({'width':'100px'},1000);});以及 –