jQuery несколько селекторов идентификаторов


вот фрагмент начала моего кода:

var myUpload = $("#upload_link").upload({bla bla bla

в основном то, что я пытаюсь сделать, это сделать тот же вызов с несколькими разными идентификаторами...

Я бы предположил, что это будет работать, но это не так:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({

какие идеи?

6 96

6 ответов:

попробуйте это:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});

Если вы даете каждому из этих экземпляров класс, который вы можете использовать

$('.yourClass').upload()

вы можете использовать несколько idвот как ты написал:

$('#upload_link, #upload_link2, #upload_link3')

однако это не означает, что эти идентификаторы существуют в DOM, когда вы выполнили свой код. Это также не означает, что upload является законной функцией. Это также не означает, что upload был построен таким образом, что позволяет использовать несколько элементов в выделении.

upload это пользовательский плагин jQuery, так что вам придется показать, что происходит с upload для нас, чтобы иметь возможность помочь тебе.

убедится upload плагин реализует this.each в нем так, что он будет выполнять логику для всех совпадающих элементов. В идеале он должен работать

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });

надо. Обычно именно так вы делаете несколько селекторов. В противном случае вам может не понравиться попытка присвоить возвращаемые значения трех загрузок одному и тому же var.

Я бы предложил использовать .each или, может быть, нажмите возврат к массиву, а не присваивать их этому значению.

Это должно работать, вам может понадобиться пробел после запятых.

кроме того, функция, которую вы вызываете впоследствии, должна поддерживать массив объектов, а не только одноэлементный объект.