首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Onblur不开火

Onblur不开火
EN

Stack Overflow用户
提问于 2015-08-28 02:34:11
回答 2查看 116关注 0票数 0

场景:

我想激活函数checkDOMChange (它隐藏了空的ul标记),一旦一个input被填充并没有焦点,但是当前没有调用该函数。这是一个小提琴

代码语言:javascript
复制
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();
    }
  }
EN

回答 2

Stack Overflow用户

发布于 2015-08-28 02:49:31

您需要在解析脚本时更改脚本,因为DOM是空的,所以在运行时不存在field-invalid类(尚未加载HTML元素)。

为此,将函数赋值给一个变量,如下所示。

代码语言:javascript
复制
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语句。

票数 0
EN

Stack Overflow用户

发布于 2015-08-28 03:04:15

代码语言:javascript
复制
   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);
   }

这就是你想要的,我想

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32262489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档