をjQueryのコードを適用するには:私がフォローバックボーンビューを持っている場合バックボーンビューで
core.views.Login = Backbone.View.extend(
{
el: '#main-content-wrapper',
events:
{
'focus #username': 'usernameFocus',
'blur #username': 'usernameBlur'
},
initialize: function()
{
this.render();
},
render: function()
{
var html = unlocked.renderTemplate('login', 'core');
this.$el.empty().html(html);
$('#username').focus();
return this;
},
usernameFocus: function(event)
{
console.log('focus');
if($(event.target).val() == 'Username')
{
$(event.target).val('');
}
},
usernameBlur: function(event)
{
if($(event.target).val() == '')
{
$(event.target).val('Username');
}
}
});
私が持っている問題は、私がやるときということです:$(「#ユーザ名」))(焦点を当てます;。 :レンダリングでは、:usernameFocus:イベントがまだ添付されていないということです。私が考えることができるソリューションは2つだけです。
- setTimeoutを使用 - このオプションは、技術的に働くだろうが、私はレンダリング中にイベントを適用し、手動での現実的な選択肢
- 考慮されていない - これを行うと、完全にバックボーンがちょうど思われる提供イベントシステムをバイパスます奇妙な。
すべてのイベントが適用された後、バックボーンはjQueryコードを実行できますか?
これも機能し、元の質問にもっとうまく答えます。 – ryanzec