2013-04-13 26 views
1

我尝试点击.dropzone类,通过jQuery当用户点击.dropzone-upload-btn元素。我有这个代码,但它没有做任何事情。任何想法为什么?在jQuery中最接近不工作

<div class="dropzone-wrapper"> 
    <div class="dropzone"></div> 
    <div class="dropzone-upload-btn"></div> 
</div> 

这是jQuery代码(简化的)

$('.dropzone-upload-btn').on("click", function() { 
    return $(this).closest('.dropzone').click(); 
}); 

回答

4

closest着眼于匹配元素及其祖先。你可能想siblings

$('.dropzone-upload-btn').on("click", function() { 
    return $(this).siblings('.dropzone').click(); 
}); 

参考文献:

当然,如果你是100%肯定的.dropzone元素会立刻浮现在.dropzone-upload-btn前元素,那么你可以使用prevprevAll

$('.dropzone-upload-btn').on("click", function() { 
    return $(this).prev('.dropzone').click(); 
}); 

参考文献:

prevAll可以,如果你知道目标元素将匹配一个之前他们都能用上,但不一定立即之前。 prev将只看第一个直接以前的兄弟姐妹。

prevAllsiblings之间的区别是,siblings着眼于匹配元素之后之前兄弟姐妹,而prevAll看起来只有在面前的兄弟姐妹。