• 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();
  • 相关阅读:
    JavaScript是单线程的
    JavaScript异步
    对象和文本间的转换
    json注意事项
    什么是 JSON?
    定义 Teacher() 构造器函数
    给每一个缩略图添加点击处理器
    新的事件触发机制被定义在 Document Object Model (DOM) Level 2 Events Specification,
    事件在浏览器窗口中
    在代码中做决定 — 条件在任何程序语言中
  • 原文地址:https://www.cnblogs.com/yujihaia/p/7367654.html
Copyright © 2020-2023  润新知