Impostazione dello scorrimento sull'elemento del modello
-
11-12-2019 - |
Domanda
Sto usando Mobiscroll con underscore.Ho un modello di sottolineatura.Ho bisogno di fare il .scroller su un elemento aggiunto dal modello.
Ecco il modello:
<form>
<input type="text" id="startdate" name="startdate"/>
</form>
.
Ecco la funzione di rendering nella vista:
var MyView = Backbone.View.extend({
template: render('auctioncreate'),
render: function() {
this.$el.empty().append(this.template);
$('#startdate').scroller(); // this does not work
}
});
.
Il rendering è una funzione che carica l'HTML e lo rende in un modello.Per completezza, ecco il codice per la funzione di rendering:
function render(tn, td) {
if(!render.tc) {
render.tc = {};
}
if(! render.tc[tn]) {
var td = 'assets/js/templates';
var tu = td + "/" + tn + ".html";
var ts;
$.ajax({
url: tu,
method: 'GET',
async: false,
dataType: 'html',
success: function(d) {
ts = d;
},
error: function(e) {
}
});
render.tc[tn] = ts;
}
return _.template(render.tc[tn]);
}
.
Ho provato ad aggiungere un JavaScript OnDomready nel modello stesso.Non funziona subito, ma funziona dopo un aggiornamento ?!
$(function() {
$('#startdate').scroller(); // this work if I refresh once.
});
.
Fondamentalmente ho bisogno di applicare il selezionatore DateTime sull'elemento dopo che viene aggiunto al DOM.
Soluzione
L'errore era nella funzione di rendering della vista.
invece di:
$('#startdate')...
.
Avrebbe dovuto essere:
this.$('#startdate')...
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow