场景:
我想激活函数checkDOMChange (它隐藏了空的ul标记),一旦一个input被填充并没有焦点,但是当前没有调用该函数。这是一个小提琴。
function checkDOMChange() {
if ($("div[id$='DoIQualify_financials'] div").hasClass("field-invalid")) {
if ($('.borrower1Salary_errors li').length == 0) {
jQuery("ul.borrower1Salary_errors").hide();
}
if ($('.borrower2Salary_errors li').length == 0){
jQuery("ul.borrower2Salary_errors").hide();
}
}发布于 2015-08-28 02:49:31
您需要在解析脚本时更改脚本,因为DOM是空的,所以在运行时不存在field-invalid类(尚未加载HTML元素)。
为此,将函数赋值给一个变量,如下所示。
checkDOMChange = function (){
if ($("div[id$='DoIQualify_financials'] div").hasClass("field-invalid")) {
if ($('.borrower1Salary_errors li').length == 0) {
jQuery("ul.borrower1Salary_errors").hide();
}
if ($('.borrower2Salary_errors li').length == 0) {
jQuery("ul.borrower2Salary_errors").hide();
}
}
} 这样,在DOM加载了所需的元素之后调用该函数。这里有一个很好的解释,它更详细地解释了不同之处。
您还可以选择将函数放在一个window.onload事件中,该事件在执行脚本之前等待DOM加载。
第三种选择是将脚本放在HTML关闭的body标记之前(浏览器自上而下读取script标记,以便在读取script标记之前加载DOM )。
您还需要关闭第一个if语句。
发布于 2015-08-28 03:04:15
function checkDOMChange() {
if ($("div[id$='DoIQualify_financials'] div").hasClass("field-invalid")) {
if ($('.borrower1Salary_errors li').length == 0) {
jQuery("ul.borrower1Salary_errors").hide();
}
if ($('.borrower2Salary_errors li').length == 0) {
jQuery("ul.borrower2Salary_errors").hide();
}
}
}
$(document).ready(function () {
$(document).on('blur', '.inputbox', checkDOMChange);
}这就是你想要的,我想
https://stackoverflow.com/questions/32262489
复制相似问题