jQuery - File Uploader - Как получить контрольную точку $ (этого) элемента, по которому щелкнули - PullRequest
2 голосов
/ 24 февраля 2011

Я использую плагин jQuery File для загрузки .На одной странице имеется более одного экземпляра загрузчика файлов.

Посмотрите здесь пример jsFiddle

$(function () {
    $('.file_upload').fileUploadUI({
        uploadTable: $('#files'),
        downloadTable: $('#files'),
        buildUploadRow: function (files, index) {

            // HOW TO DETERMINE WHICH FILE_UPLOADER Was Clicked?
            // Need a reference point so I can find the right, #files1 or #files2

            return $('<tr><td>' + files[index].name + '<\/td>' +
                    '<td class="file_upload_progress"><div><\/div><\/td>' +
                    '<td class="file_upload_cancel">' +
                    '<button class="ui-state-default ui-corner-all" title="Cancel">' +
                    '<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
                    '<\/button><\/td><\/tr>');
        },
        buildDownloadRow: function (file) {
            return $('<tr><td>' + file.name + '<\/td><\/tr>');
        }
    });
});

У меня проблема в том, что когда пользователь нажимает кнопку загрузки файлов, я понятия не имеюкакой из них они нажали.Мне нужно знать, на какой из них они нажимают, потому что я хочу, чтобы плагин buildUploadRow и т. Д. Знал, где построить строку.Я попытался использовать $ (this), но у меня нет селектора, элемента формы, и это все, что мне нужно.

1 Ответ

2 голосов
/ 04 апреля 2011

Используя каждый метод jQuery , вы можете получить нужную ссылку на форму загрузки, которая позволяет вам назначить связанный uploadTable / downloadTable:

$('.file_upload').each(function() {
    var uploadTable = downloadTable = $(this).next('table');
    $(this).fileUploadUI({
        uploadTable: uploadTable,
        downloadTable: downloadTable,
        buildUploadRow: function (files, index) {
            return $('<tr><td>' + files[index].name + '<\/td>' +
                    '<td class="file_upload_progress"><div><\/div><\/td>' +
                    '<td class="file_upload_cancel">' +
                    '<button class="ui-state-default ui-corner-all" title="Cancel">' +
                    '<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
                    '<\/button><\/td><\/tr>');
        },
        buildDownloadRow: function (file) {
            return $('<tr><td>' + file.name + '<\/td><\/tr>');
        }
    });
});

По другим вопросам, касающимся плагина jQuery File Upload, не стесняйтесь использовать средство отслеживания проблем на сайте проекта.

...