サイトへの画像のアップロードに Uploadify jQuery プラグインを使用しています。独自のキュー マークアップを使用して自分でカスタマイズしています。マークアップは次のとおりです。
<form id="upload-form" action="" method="post" enctype="multipart/form-data">
<div id="file-queue">
<ul>
</ul>
</div>
<div id="upload-form-buttons">
<input type="file" name="images" id="image-upload" />
<a href="" class="primary-button">Upload</a>
</div>
</form>
Uploadify コード:
$('#image-upload').uploadify({
'swf': '/swf/uploadify.swf',
'uploader': 'uploadify.php',
'buttonClass': 'primary-button',
'buttonText': 'Select files',
'height': 28,
'width': 100,
'queueID': 'file-queue',
'overrideEvents': ['onSelect'],
'onSelect': function(file) {
onSelect(file);
},
'onCancel': function(file) {
onCancel(file);
}
});
ユーザーがファイルを選択すると、この関数を起動してアップロード キューに追加します。
function onSelect(file) {
// Add the file to the queue
$('#file-queue ul').append('<li class="' + file.id + '">' + trimName(file.name) + '<a href="javascript:$(\'#image-upload\').uploadify(\'cancel\')"><img class="cancel" src="/img/cancel.png" /></a><span class="filesize">' + readableFileSize(file.size) + '</span></li>');
}
そのファイルのマークアップは次のようになります。
<li class="SWFUpload_0_0">
IMG_20120610_185131.jpg
<a href="javascript:$('#image-upload').uploadify('cancel')">
<img class="cancel" src="/img/cancel.png">
</a>
<span class="filesize">606.1KB</span>
</li>
現在、キャンセル ボタンをクリックしても、Uploadify はキャンセル イベントを発生させません。これは起動されるべき関数です:
function onCancel(file) {
// Remove file from queue
$('#file-queue ul li.' + file.id).remove();
}
ただし、ファイルがキューから削除されることはありません。$('#image-upload').uploadify('cancel')
私が自分の関数を入れるとonSelect
(私はこれをテストとして行いました)、それは機能します。私も何かをしようとしまし$('img.cancel').live('click', function() { //... });
たが、そこでも解雇されません。
また、興味深いことに、$('#image-upload').uploadify('cancel');
自分のページで Chrome の JavaScript コンソールに貼り付けると、undefined
.