Лучшая вещь иметь в виду состоит в том, чтобы отслеживать ссылки на Ваши объекты. Очень легко закончиться с зависающими ссылками на объекты, о которых Вы не заботитесь больше. Если Вы не собираетесь использовать что-то еще, избавляться от него.
Привыкают к использованию поставщика кэша со скользящими истечениями, так, чтобы, если на что-то не ссылаются для желаемого окна времени, оно было разыменовано и очищено. Но если к этому получат доступ много, то это скажет в памяти.
Причина, по которой он вызывает при загрузке, заключается в том, что передача имени функции с аргументами активно вызывает ее. Вы можете эффективно имитировать то, что ищете, заключив вызов validateText в анонимную функцию вроде этого.
$(document).ready(function() {
$("#myTextbox").blur(function(){
// Since in your original example you used $("#myTextbox") as an arg, this mimics it
validateText($(this), $("#Select1"));
});
});
Анонимная функция, поскольку она использует ключевое слово this, должна немного лучше масштабироваться с вашим начальным селектором, если вы измените его с #myTextbox на textarea или что-то еще. =)
Используйте привязку для передачи дополнительных параметров прослушивателю событий:
http://docs.jquery.com/Events/bind
$(document).ready(function() {
$("#myTextbox").bind("blur", [ $("#myTextBox"), $("#Select1")], validateText);
})
Затем получите доступ к данным из event.data:
function validateText(event) {
textBox = event.data[0];
dropdown = event.data[1];
}