jquery-selected açılır menüsünü devre dışı bırak


88

Stil vermek ve özellikler eklemek (en önemlisi, arama) için seçilen jquery eklentisini kullandığım bir seçili div var . Div şuna benzer,

 <select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
 <option value=""></option>
 </select>

Ve seçilen eklentiyi şu şekilde kullanıyorum,

 $('#foobar').chosen();

Bazı AJAX yüklenirken, tüm <select>div'i devre dışı bırakmak istiyorum . Belki bunun gibi bir şeyle

 $('#foobar').disable()

veya bu

 $('#foobar').prop('disabled', true)

Sanırım anladınız.

Bunun nasıl yapılacağına dair bir fikriniz var mı? Bir şeyleri devre dışı bırakmak için jquery deyimlerini kullanmak <select>, üstündeki seçilen şeyleri değil, yalnızca temel seçimi devre dışı bırakan devre dışı bırakmak gibi bir dizi farklı şey denedim . z-indexKutuyu grileştirmek için yüksek olan başka bir div'i manuel olarak eklemeye bile başvurdum , ancak bunun çirkin ve hatalı olacağını düşünüyorum.

Yardım için teşekkürler!

Yanıtlar:


152

Yalnızca sizin devre dışı bırakıyorsunuz select, ancak seçilen, onu div'ler ve yayılmalar, vb. Olarak işler. Bu nedenle, seçiminizi devre dışı bıraktıktan sonra, seçme parçacığını devre dışı bırakmak için eklentiyi güncellemeniz gerekir. Bu şekilde deneyebilirsiniz:

$('#foobar').prop('disabled', true).trigger("liszt:updated");

//For non-older versions of chosen you would want to do:

$('#foobar').prop('disabled', true).trigger("chosen:updated");

Bilgiyi burada buldum

Vaktini boşa harcamak

Widget'ı güncelledikten sonra tek yaptığı, eklentideki tıklama veya diğer olayları çözer ve opaklığını 0,5 olarak değiştirir. Bir div için gerçek bir engelli durumu olmadığından.


Görünüşe göre bir yazım hatası var, liszt:updated`list: güncellenmiş mi?
lanoxx

1
lisztdoğruydu, ama şimdi chosen:updatedbunu yapmanın en doğru yolu.
Kaleb Anderson

Öneri: Kullanıcıların çoğu en son sürümü kullanacağından, cevabınızda ilk olarak kodun en son sürümünü belirtmeniz gerekebilir. liszt:updatedYeni sürümlerde çalışmadığı için kullandım ve çalışmadım.
Lucky

.trigger("chosen:updated");Ayrıca, örneğin bir işlevde tekrar aradığınızda, etkinleştirmeye veya devre dışı bırakmaya hizmet eder.
Arenas V.

$ ('# foobar seçeneği: değil (: seçildi)'). prop ('devre dışı', doğru) .trigger ("seçilmiş: güncellendi"); dropbox'taki seçili öğe dışındaki diğer öğeleri devre dışı bırakır.
Asad Naeem

51

Seçilen en son sürümde liszt:updatedartık çalışmıyor. Kullanmanız gerekenler chosen:updated:

$(".chosen-select").attr('disabled', true).trigger("chosen:updated")

İşte bir JSFiddle .


7

PSL doğruydu, ancak o zamandan beri güncellendi.

Devre dışı bıraktıktan sonra bunu koyun:

$("#your-select").trigger("chosen:updated");

6
$('#foobar').prop('disabled', true).trigger("chosen:updated");

Bu mükemmel çalışıyor !!!! @chosen v1.3.0


1

Bunu deneyebilirsiniz:

$("#foobar").prop('disabled',true).trigger("chosen:updated").chosen('destroy').chosen()


0
$(document).ready(function () {
    $("#foobar").chosen().on('chosen:showing_dropdown',function() {
            $('.chosen-select').attr('disabled', true).trigger('chosen:updated');
            $('.chosen-select').attr('disabled', false).trigger('chosen:updated');
            $('.search-choice-close').hide();
    });
    $('.search-choice-close').hide();
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.