Dropzone.js/jQuery 冲突
Dropzone.js/jQuery conflict
我有一个应用程序有一个 Dropzone.js 区域(实际上在一个页面上有两个)以及一些自定义 jQuery。自定义 jQuery(下图)工作正常。
function changeImage() {
var self = $(this),
src = this.value,
thumbs = self.closest('.form-group').siblings('.selector_thumbnails');
thumbs
.find('img')
.hide()
.filter('#' + src)
.show();
}
$('.thumbnail_selector')
.change(changeImage)
.trigger('change');
对应的HTML如下:
<div class='row form-group'>
<div class='col-sm-2'></div>
<div class='col-sm-4'>
<%= f.input :cover_id, collection: @covers.reverse, as: :select, include_blank: true, input_html: { class: 'thumbnail_selector' } %>
<div class='selector_thumbnails'>
<% @covers.each do |cover| %>
<%= image_tag(cover.cover(:cropped), id: cover.id, class: 'thumbnail') %>
<% end %>
</div>
</div>
</div>
尽管如此,Dropzone 无法正常工作。如果我删除该代码,Dropzone 工作正常。我错过了什么?
这是我的控制台(这是一个 Dropzone 错误,似乎是由上述 JS 引起的):
问题是 jQuery 试图读取 include_blank: true
设置的 .value
。所以,解决方案:
function changeImage() {
var self = $(this),
src = this.value,
thumbs = self.closest('.form-group').siblings('.selector_thumbnails');
if (src) {
thumbs.find('img').hide().filter('#' + src).show();
} else {
thumbs.find('img').hide();
}
}
完成。
我有一个应用程序有一个 Dropzone.js 区域(实际上在一个页面上有两个)以及一些自定义 jQuery。自定义 jQuery(下图)工作正常。
function changeImage() {
var self = $(this),
src = this.value,
thumbs = self.closest('.form-group').siblings('.selector_thumbnails');
thumbs
.find('img')
.hide()
.filter('#' + src)
.show();
}
$('.thumbnail_selector')
.change(changeImage)
.trigger('change');
对应的HTML如下:
<div class='row form-group'>
<div class='col-sm-2'></div>
<div class='col-sm-4'>
<%= f.input :cover_id, collection: @covers.reverse, as: :select, include_blank: true, input_html: { class: 'thumbnail_selector' } %>
<div class='selector_thumbnails'>
<% @covers.each do |cover| %>
<%= image_tag(cover.cover(:cropped), id: cover.id, class: 'thumbnail') %>
<% end %>
</div>
</div>
</div>
尽管如此,Dropzone 无法正常工作。如果我删除该代码,Dropzone 工作正常。我错过了什么?
这是我的控制台(这是一个 Dropzone 错误,似乎是由上述 JS 引起的):
问题是 jQuery 试图读取 include_blank: true
设置的 .value
。所以,解决方案:
function changeImage() {
var self = $(this),
src = this.value,
thumbs = self.closest('.form-group').siblings('.selector_thumbnails');
if (src) {
thumbs.find('img').hide().filter('#' + src).show();
} else {
thumbs.find('img').hide();
}
}
完成。