zoukankan      html  css  js  c++  java
  • 关于js开发的小问题

    一、开发当中经常会动态拼接html,当然为了简便性好多人直接就是使用内联事件:

    $('#td1').html( '<a href="#" onclick="app.showPostEdit('+aData+')"></a>');
     $.Test = {
                GetData: function () {
                    $.post("/Home/GetData", function (backdata) {
                        var strHtml = "";
                        $.each(backdata, function (itemIndex, item) {
                            strHtml += "<div class="row">";
                            strHtml += "    <div class="col-md-4">";
                            strHtml += "        " + item.Id;
                            strHtml += "    </div>";
                            strHtml += "    <div class="col-md-4">";
                            strHtml += "        " + item.Url;
                            strHtml += "    </div>";
                            strHtml += "    <div class="col-md-4">";
                            strHtml += "        <button class="btn btn-sm" onclick="$.Test.AppendBtn(" + item + ")">" + item.Name + "</button>";
                            strHtml += "    </div>";
                            strHtml += "</div>";
                        });
                        $("#content").append(strHtml);
                    });
                },
                AppendBtn: function (str) {
                    console.log(str);
                    alert(str.Name);
                }
            };

    浏览器会把它解析为:

    <button class="btn btn-sm" onclick="$.Test.AppendBtn(eval([object Object]))">Name1</button>

    毫无疑问,上面这种情况肯定是不对的;通常这种解决方案有两种:

    1、使用全局变量,函数中传递对象索引,在具体的函数根据索引取出相应的对象

    2、不使用内联事件,动态注册事件

    当然还有一种方法,就是把对象的属性分别取出来进行传递;如果只有一两个还可以,否则.........你懂的!如果有更好的解决方案,请指教,多谢哦!

    二、当业务比较复杂,一个页面中可能要写多个js文件,某个js文件可能使用common.js中的方法,而真正去写代码时会发现没有提示;

      只需要把common.js拖到你当前的js文件中即可;

         你的js文件会出现:/// <reference path="common.js" />

  • 相关阅读:
    Oracle 12C 物理Standby 主备切换switchover
    Oracle 性能之 Enq: CF
    dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
    OGG 从Oracle备库同步数据至kafka
    WARNING: inbound connection timed out (ORA-3136)
    11G 新特性之 密码延迟认证
    org-mode 写 cnblogs 博客
    inner join, left join, right join, full outer join的区别
    Emacs 浏览网页
    服务器被攻击后当作矿机,高WIO
  • 原文地址:https://www.cnblogs.com/tianboblog/p/5655765.html
Copyright © 2011-2022 走看看