puedo asegurarle el.button();
funciona pero ...
que necesita para tener en cuenta cuando se ejecuta el selector de vista de jQuery.
cuando lo escribe como lo hizo, su selector jQuery se ejecuta cuando se analiza el código de vista, lo que significa que esto ocurre principalmente cuando su dom no estaba listo para cargarse.
se puede pasar mejor el el
en adelante como esto:
var ButtonView = Backbone.View.extend({
initialize: function() {
this.el.button();
}
});
$(function(){
var myButton = new ButtonView({ el: $('#ButtonId') });
});
ahora, la vista se crea una instancia de documento listo, el elemento de botón se pasa porque el Reino estaba listo y el selector resuelve al elemento de botón . y puedes usar felizmente el.button();
para aplicar algo en él.
ejemplo: http://jsfiddle.net/saelfaer/KEQQB/
edición
otra manera de hacerlo es definir su elementselector como argumento el, y sólo ejecutarlo como lo hizo.
var ButtonView = Backbone.View.extend({
el: '#ButtonId'
initialize: function() {
$(this.el).button();
}
});
$(function(){
var myButton = new ButtonView({ });
});
esto funciona tan bien, pero sólo sería capaz de utilizar este punto de vista en el botón dado menos que lo sustituya, el primer ejemplo es más limpio para la reutilización de código, se puede crear una instancia de 3 veces y cada uno de ellos podrían pasar a otro botón para ...
ejemplo: http://jsfiddle.net/saelfaer/KEQQB/6/
sidenote en una anotación al margen te sugiero usar el método render, que son libres de hacer esto en el inicio, pero creo el método de renderizado es el que debería ser handli ng esto.
var ButtonView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "render");
},
render: function() {
this.el.button();
return this;
}
});
$(function(){
var myButton = new ButtonView({ el: $('#ButtonId') }).render();
});
Puede añadir 'http: // ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css' a los recursos si quieres un poco de estilo. 'el: '# myButton'' y' $ (this.el) .button() 'sería otra opción, ¿no? –
1) correcto, $ (this.el) .... también es una opción, luego debe especificar el el en su vista, sin embargo, depende de dónde lo necesite, para volver a usar la vista en varios lugares, no me importa pasar el elemento, ya que proporciona flexibilidad 2) gracias por el enlace jquery ui css, lo agregaré de inmediato – Sander
Gracias, tienes razón. Mi problema no era el selector que estaba usando, sino que el selector se estaba ejecutando antes de que DOM estuviera listo. Cada parte de tu respuesta fue útil. – xcer