Обновление: Мне кажется, я понял, чего вы хотите достичь, и это должно сработать (нет необходимости в пользовательских событиях):
function validate(element, defaultInputValue, ErrorMessage, ValidMessage) {
alert($(this).val());
if($(this).val()=="" || $(this).val()==defaultInputValue)
{
$(this).val(defaultInputValue);
$(this).siblings("span[id*='error']").toggleClass("error_set").text(ErrorMessage).fadeOut(3000);
}
else
{
$(this).siblings("span[id*='error']").toggleClass("error_ok").text(ValidMessage).show(1000);
}
}
$(document).ready(function(){
$("#txtFirstName").bind('focusout', function() {
validate(this, "defaultValue here", "Error message here", "Valid message here");
});
});
Если у вас есть вопросы, просто спросите:)
Первый параметр вашего связанного обработчика событий - это сам объект события. См. Пример из .trigger()
документации :
$('#foo').bind('custom', function(event, param1, param2) {
alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
и
Объект события всегда передается в качестве первого параметра в обработчик события, но если дополнительные параметры задаются во время вызова .trigger()
, как они есть, эти параметры также будут передаваться в обработчик.
Так что ваш должен выглядеть так:
function(event, defaultInputValue, ErrorMessage, ValidMessage)
Но было бы лучше, если бы вы описали, какую ошибку вы действительно получаете.
Второй выпуск: Если я правильно вижу, вторая привязка как-то не имеет смысла:
$(document).ready(function(){
$("#txtFirstName").bind('focusout', function(){});
$(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
{ //...
});
});
С каким элементом вы хотите связать свое пользовательское событие? Каким должен быть $(this)
? В этом состоянии, даже если добавить event
в качестве первого параметра в функцию, это не будет работать.
Пожалуйста, расскажите нам больше о вашей HTML-структуре и / или о том, чего вы хотите достичь.