jquery不兼容input的change事件处理
因为客户使用系统一般都是用IE版本的浏览器,所以每次在chrome下调试之后都要在IE走一遍;
这次准备在选择开始时间或者结束时间之后在下方能及时给出对应的天数,但是在IE8下试了change时间根本触发不了,网上找了解决方案,如下:
1 //考虑到IE8下无法触发change事件, 因此使用focus和blur搭配实现效果 2 $(this).on("focus", ".date-picker input", function() { 3 4 $(this).attr("originalVal", $(this).val()); 5 6 }).on("blur", ".date-picker input", function(){ 7 //原始日期值 8 var oldVal = $(this).attr("originalVal"); 9 //改变后的日期值 10 var newVal = $(this).val(); 11 12 13 //实时计算课程时长及培训天数 14 if(oldVal != newVal){ 16 budgetHandle("change"); 17 } 18 19 20 });
首先聚焦前先保存原始值,移除焦点后判断原始值和新值相不相同,如不相同则再进行计算;
同时测试过IE7,IE8都正常;
立志是事业的大门,工作是登堂入室的旅程。这旅程的尽头有个成功在等待着,来庆祝你的努力成果。