1

.dropzone当用户单击.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

1 回答 1

4

closest查看匹配的元素及其祖先。你可能想要siblings

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

参考:

当然,如果您 100% 确定该.dropzone元素将紧接在该.dropzone-upload-btn元素之前,那么您可以使用prevor prevAll

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

参考:

prevAll如果您知道目标元素将在匹配的元素之前出现,则可以使用,但不一定在之前prev只会查看第一个 一个兄弟姐妹。

prevAll和之间的区别在于siblingssiblings查看匹配元素之前prevAll之后的兄弟姐妹,而只查看它之前的兄弟姐妹。

于 2013-04-13T19:36:44.477 回答