Ich habe einige Probleme mit Elementen, die außerhalb des Geltungsbereichs liegen oder etwas, aber ich bekomme keine Fehler, daher bin ich nicht wirklich sicher, wie ich es beheben kann. Ich habe meinen Code unten aufgeschrumpft, um relevante Informationen einzubeziehen.Elemente außerhalb des Geltungsbereichs?
(function(){
var zdf = {
theme : $('#zdf_theme')
};
zdf.setupPopup = function(){
zdf.loadThemes();
}
zdf.loadThemes = function() {
zdf.theme
.editableSelect({
effects: 'slide'
})
.on('select.editable-select', function(e, li) {
zdf.theme.attr("data-value", li.attr('value'));
});
});
}
}();
Hoffentlich habe ich genug Code zur Verfügung gestellt, das Problem zu identifizieren, aber im Grunde ist alles, bis die Linie
zdf.theme.attr("data-value", li.attr('value'));
Es scheint nicht, das Objekt zdf.theme
auswählen Aufarbeiten Wenn ich es durch den tatsächlichen Selektor $('#zdf_theme')
ersetze, funktioniert es gut.
Die bearbeitbare Auswahl ist dieser Code-Basis https://github.com/indrimuska/jquery-editable-select
Jeder Eingang wäre toll!
Wenn Sie 'console.log (zdf.theme)' in Ihrer loadThemes-Funktion verwenden, was zeigt es? Sie können auch 'this.theme' anstelle von' zdf.theme' verwenden. –
Ich frage mich, ob Sie '$ (this)' anstelle von 'zdf.theme' in der .on-Prozedur verwenden könnten. – James
Umfang ist in Ordnung. Versuchen Sie, .attr() zu .prop() zu ändern. Ich denke, es könnte ein Problem mit leeren Attribut sein. Lesen Sie mehr über attr() vs prop() hier: http://stackoverflow.com/questions/5874652/prop-vs-attr. Sie könnten auch .data ('value') verwenden. –