Почему переменные селектора jQuery не работают в пространствах имен?
Я нахожусь в тупике, почему это не работает. Я ищу, чтобы было объявлено более одной переменной. Что я делаю неправильно?
var message = (function ($) {
var $modalBody = $('.modal-body'),
$lblToUser = $modalBody.find('.to-user');
return {
toUser: function () {
$lblToUser.val('To');
$lblToUser.focus(function () {
if (this.value === 'To') this.value = '';
$(this).addClass('darker');
}).blur(function () {
if (this.value === '') this.value = 'To';
$(this).removeClass('darker');
});
},
};
})(jQuery);
message.toUser();
2 ответа
Решение
Кажется, вы не на своем месте ,
в конце toUser
это может вызвать проблемы.
var message = (function ($) {
var $modalBody = $('.modal-body'),
$lblToUser = $modalBody.find('.to-user');
return {
toUser: function () {
$lblToUser.val('To');
$lblToUser.focus(function () {
if (this.value === 'To') this.value = '';
$(this).addClass('darker');
}).blur(function () {
if (this.value === '') this.value = 'To';
$(this).removeClass('darker');
});
}, // <-----
};
})(jQuery);
message.toUser();
Может быть, вам нужно сначала инициализировать документ?
$( document ).ready( function () { // <-------
var message = (function ($) {
var $modalBody = $('.modal-body'),
$lblToUser = $modalBody.find('.to-user');
return {
toUser: function () {
$lblToUser.val('To');
$lblToUser.focus(function () {
if (this.value === 'To') this.value = '';
$(this).addClass('darker');
}).blur(function () {
if (this.value === '') this.value = 'To';
$(this).removeClass('darker');
});
},
};
})(jQuery);
message.toUser();
});