【发布时间】:2016-07-21 02:52:07
【问题描述】:
我正在使用名为bluimp 的jQuery 文件上传插件。我的 2 个按钮(start、cancel)正在动态形成,因此我无法将事件侦听器附加到它们。我已将一个侦听器附加到它们最近的静态祖先,即 ID 为 fileupload 的表单。通过start按钮成功上传后形成delete。
delete 按钮侦听器正在工作,但start 却没有。 (我说的是两个按钮的自定义侦听器以执行其他操作。blueimp 提供的默认操作工作正常。)
代码sn-ps:
html(动态生成的按钮html)
<td>
<button id="start-upload-button" class="btn btn-primary start">
<i class="glyphicon glyphicon-upload"></i>
<span>Start</span>
</button>
<button class="btn btn-warning cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel</span>
</button>
</td>
点击start并上传完成后delete的html就形成了
<button id="file-delete-button" class="btn btn-danger delete" data-type="POST" data-url="/delete/25">
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
js
$(document).ready(function() {
$('#fileupload').on("click", "#file-delete-button", function(event) {
console.log("Delete event fired");
$("#sourcetext").hide();
});
$('#fileupload').on("click", "#start-upload-button", function(event) {
console.log("Upload event fired");
$("#sourcetext").hide();
});
});
【问题讨论】:
-
你说,
start创建了delete,但delete工作正常而start不是。那么delete是怎么出现的呢? -
我在
start上的听众不工作。start正在按预期工作,并且行为是从blueimp借来的,我还没有编写任何自定义行为。所以delete的形成由blueimp处理。我只想在单击start时执行其他操作,而blueimp不会这样做。
标签: jquery jquery-plugins blueimp jquery-events event-delegation