Ich habe folgende HTML:Verkettete Methodenaufrufe funktionieren nicht mit dem ursprünglichen oder geklonten Element, warum?
<input type="text" id="condition_value_1" style="display: none" />
<button id="showme">Make Select2</button>
<button id="clickme">Make Input</button>
Dann einen Blick auf die folgende jQuery nehmen:
$(function() {
var cond1 = $('#condition_value_1');
var cloned_cond1 = cond1.clone();
var cond1_select = '<select name="condition_value_1" id="condition_value_1" multiple="multiple"><option></option><option value="1">Opt1</option><option value="2">Opt2</option></select>';
$('#showme').click(function() {
cond1.removeAttr('style').replaceWith(cond1_select).select2({
placeholder: 'Select choice'
});
});
$('#clickme').click(function() {
if ($('#condition_value_1').hasClass('select2-hidden-accessible')) {
$("#condition_value_1").select2('destroy');
}
$('#condition_value_1').replaceWith(cloned_cond1).removeAttr('style');
});
});
Sie können den Code versuchen oben HERE.
Jetzt, sobald Sie auf #showme
klicken, sollten Sie den Attr Stil entfernen, ersetzen Sie das ursprüngliche Element mit dem gegebenen und drehen Sie es in ein Select2, der letzte Teil funktioniert nicht.
In der anderen Seite, wenn Sie auf #clickme
klicken sollten Sie die vorherige Select2 die #condition_value_1
mit dem geklonten Element zerstören ersetzen und den attr Stil entfernen, weil das geklonte dieses Attribut hat aber das funktioniert nicht.
Die Idee besteht darin, zwischen den Elementen zu wechseln und die Eigenschaften bei Bedarf ein- und auszuschalten.
Vielleicht fehlt mir hier etwas, aber ich bin mir nicht sicher was. Kann mir hier etwas helfen?
Das Entfernen des Attributs aktualisiert die Eigenschaft nicht. Stattdessen verwenden Sie 'show()' Methode, –
'cond1.replaceWith (cloned_cond1); cond1.removeAttr ('style'); 'ist rückwärts, nicht wahr? 'cloned_cond1.removeAttr ('Stil'); cond1.replaceWith (cloned_cond1); ' – Gavin
@PranavCBalan das funktioniert auch nicht – ReynierPM