jQuery的初始加载函数和html事件加载顺序
2017-11-06 16:52
323 查看
最近遇到一个问题,我在JSP里的一个input标签里面定义了一个onblur事件,然后该事件绑定的函数check()写在了js里。奇怪的是,当我把这个函数写在jQuery的初始加载函数里面之后,这个函数失效了。
代码如下:
<input type="text" name="phone" value="" id="phone" onblur="validatemobile(this)">
上述写法,会使函数validateMobile()失效,可能是因为$(function(){})的执行顺序相对普通的js函数和事件加载机制的执行顺序要靠后,所以导致函数绑定失败。
解决方法:
把function validateMobile(obj){...}移出$(function{});就行了,并且要保证放在$(function{});之前。
代码如下:
<input type="text" name="phone" value="" id="phone" onblur="validatemobile(this)">
$(function(){ function validatemobile(obj) { var mobile = $(obj).val(); if (mobile.length == 0) { alert('请输入手机号码!'); document.form1.mobile.focus(); return false; } if (mobile.length != 11) { alert('请输入有效的手机号码!'); $(obj).val(""); document.form1.mobile.focus(); return false; } var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (!myreg.test(mobile)) { alert('请输入有效的手机号码!'); $(obj).val(""); document.form1.mobile.focus(); return false; } } });
上述写法,会使函数validateMobile()失效,可能是因为$(function(){})的执行顺序相对普通的js函数和事件加载机制的执行顺序要靠后,所以导致函数绑定失败。
解决方法:
把function validateMobile(obj){...}移出$(function{});就行了,并且要保证放在$(function{});之前。
相关文章推荐
- js和jquery页面初始化加载函数的方法及先后顺序
- jQuery 插入元素时绑定事件 或 已加载的html绑定事件
- js和jquery页面初始化加载函数的方法及先后顺序
- 浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
- js在html中的加载执行顺序,多个jquery ready执行顺序
- 【HTML/JS】利用JQuery的load函数动态加载其它页面的内容的实现代码
- javascript代码块:在HTML页面加载完成后按顺序执行函数
- JQuery 之从 $(核心函数)加载事件入门
- jquery 等html加载完成再绑定事件
- jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
- 从html页面加载顺序来更好的理解jquery初始化
- jquery page 事件加载顺序 生命周期
- html 中页面的加载顺序以及window.onload 与body 标签里面的onload事件的对比
- jQuery.on() 函数详解--解决动态加载的标签无法绑定点击事件
- js和jquery页面初始化加载函数的方法及先后顺序
- [HTML/JS]利用JQuery的load函数动态加载其它页面的内容的实现代码代替Ifram
- js在html中的加载顺序
- 【Unity3D】 Unity3D中自带事件函数的执行顺序
- jQuery加载html文档的几种方法
- Unity3D中组件事件函数的运行顺序