js问题杂记
问题一:
由于jquery可以动态异步添加页面元素,很多时候我们都不知道一个页面元素什么时候加载完成。常规的jquery的ready和js的document.onload执行是也许我们需要操作的元素还没生成完成。所以我们只能用定时器不断的循环,判断如果元素生成了。则执行我们想要的操作。
1 //页面加载完成是执行 2 $(function () { 3 customTimer(); 4 }); 5 //自定义 定时器(假设div_digg是动态生成) 6 function customTimer() { 7 if ($("#div_digg").length) { 8 //$("#div_digg"). 这里就可以执行想要的操作 9 } 10 else { 11 var intervalId = setInterval(function () { 12 if ($("#div_digg").length) { //循环判断是否存在 13 clearInterval(intervalId); // 则关闭定时器 14 customTimer(); //执行自身 15 } 16 }, 100); 17 } 18 }
问题二:IE中console未被定义 错误。
1 window.console = window.console || (function () { 2 var c = {}; 3 c.log = c.warn = c.debug = c.info 4 = c.error = c.time = c.dir = c.profile 5 = c.clear = c.exception = c.trace = c.assert = 6 function () { }; 7 return c; 8 })();
问题三:使用JS或jQuery模拟鼠标点击a标签事件
方法1:
<a id="alink" href="abc.aspx" style="visibility: hidden;">下一步</a> $("#alink").click(); // 触发了a标签的点击事件,但是没有触发页面跳转 document.getElementById("alink").click(); //既触发了a标签的点击事件,又触发了页面跳转
方法2:
把 “下一步” 改为 “<span id="spanId">下一步</span>” 即给A标签中的文字添加一个能被jQuery捕获的元素,然后$("#spanId").click();,才可以触发页面跳转。
<a id="alink" href="abc.aspx" style="visibility: hidden;"><span id="spanId">下一步</span></a> $("#spanId").click();
- 学习本是一个不断抄袭、模仿、练习、创新的过程。
- 虽然,园中已有本人无法超越的同主题博文,为什么还是要写。
- 对于自己,博文只是总结。在总结的过程发现问题,解决问题。
- 对于他人,在此过程如果还能附带帮助他人,那就再好不过了。
- 由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
- 感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。
- 工控物联Q群:995475200