focusout 仅在文档加载时触发,再也不会触发?
focusout only fires on document load and never again?
我有一个 fiddle 给你:http://jsfiddle.net/pneebntd/3/
$(document).ready(function(){
$('#Address').focusout(ValidateAddress($(this).val(), "address"));
$('#City').focusout(ValidateAddress($(this).val(), "city"));
$('#State').focusout(ValidateAddress($(this).val(), "state"));
$('#Zipcode').focusout(ValidateAddress($(this).val(), "zip/postal code"));
$("#StateList").change(ValidateAddress($(this).val(), "state"));
});
function ValidateAddress(location, label) {
console.info("made it there : " + location + " " + label);
}
简而言之,当控件失去焦点(或下拉菜单更改值)时,我(尝试)为我想要 运行 的函数附加事件处理程序。
按照它的编写方式,它会在页面加载时触发,但之后不会再触发。我以前做过,但也许只是因为今天是星期一,但是...我做错了什么?
这个代码
$('#Address').focusout(ValidateAddress($(this).val(), "address"));
调用 ValidateAddress
并将其 return 值传递给 focusout
,完全按照 foo(bar())
的方式调用 bar
并将其 return 值传递给 foo
.
如果你想给 focusout
一个函数,你必须这样做。例如:
$('#Address').focusout(function() {
ValidateAddress($(this).val(), "address");
});
该代码创建了一个新的匿名函数并将该函数引用传递给 focusout
。当事件发生时,它将调用您的 ValidateAddress
函数。
我有一个 fiddle 给你:http://jsfiddle.net/pneebntd/3/
$(document).ready(function(){
$('#Address').focusout(ValidateAddress($(this).val(), "address"));
$('#City').focusout(ValidateAddress($(this).val(), "city"));
$('#State').focusout(ValidateAddress($(this).val(), "state"));
$('#Zipcode').focusout(ValidateAddress($(this).val(), "zip/postal code"));
$("#StateList").change(ValidateAddress($(this).val(), "state"));
});
function ValidateAddress(location, label) {
console.info("made it there : " + location + " " + label);
}
简而言之,当控件失去焦点(或下拉菜单更改值)时,我(尝试)为我想要 运行 的函数附加事件处理程序。
按照它的编写方式,它会在页面加载时触发,但之后不会再触发。我以前做过,但也许只是因为今天是星期一,但是...我做错了什么?
这个代码
$('#Address').focusout(ValidateAddress($(this).val(), "address"));
调用 ValidateAddress
并将其 return 值传递给 focusout
,完全按照 foo(bar())
的方式调用 bar
并将其 return 值传递给 foo
.
如果你想给 focusout
一个函数,你必须这样做。例如:
$('#Address').focusout(function() {
ValidateAddress($(this).val(), "address");
});
该代码创建了一个新的匿名函数并将该函数引用传递给 focusout
。当事件发生时,它将调用您的 ValidateAddress
函数。