美文网首页
前端问题总结

前端问题总结

作者: 五月的约修亚 | 来源:发表于2017-03-10 17:09 被阅读0次
  1. 前端传到controller中的参数都是string类型的需要自己进行转换想要的类型,例:
#恒为false,因为params[:depth]为string类型与值类型比较永远为false,所以一定要写params[:depth].to_i
if params[:depth] == 3 
  do_something
end
  1. 在js代码中也可以直接使用<%= @data %>来取到后端的值
  2. <table>中的任何一个层次<th><tr><td>之间都无法嵌套<form>标签,也就是form不能包含多个单元格,<form><table>只能有两种嵌套方式
    <form>包含整个<table>
    <td>包含整个<form>
  3. 使用ajax提交表单时就不能用onsubmit=“return check_input()”返回false来阻止表单提交了,因为是异步的,所以不会在表单提交之前进行判断
  4. 在modal中点击按钮是不能再弹出alert的,并且似乎看不到源码,所以不能加断点调试,解决方式是使用console.log()将想要的值打印出来
  5. 在设计导航栏时有时需要点击导航栏就使用ajax提交表单刷新表格显示区域,如点击下图的“全部”按钮刷新下面的表格
    实现方式是


    image
<!-- 导航栏的html代码 -->
<li role="presentation" class='<%="active" if params[:warning_tab] == "all" %>' >
<a href="#" id="all">全部</a>
</li>
// 1.为该tab绑定事件,点击后自动提交表单(由于表单有date-remote属性,所以自动是异步提交)
// 2.onclick事件返回false阻止默认的点击链接后跳转的动作
<script>
 //点击导航提交表单
$("#all").click(function(){
    $("<input type='hidden' name='warning_tab' value='all'/>").appendTo("#condition_form")
    $("#condition_form").submit()
    return false
  
        })
</script>
  1. 如果想在提交表单前修改表单内容,则提交按钮的type不能为submit,要为button,然后在手动绑定事件处理函数修改表单内容然后提交表单
<form date-remote="true">
    <!-- some input -->
    <button type="button" id="submit_btn">提交</button>
</form>
<script>
    $("#submit_btn").click(function(){
      //do something in form
      $("form").submit()
    })
</script>
  1. 在js中嵌入ruby即便不会被调用也会报异常,为了抑制异常加入异常捕获或在整个函数外嵌入ruby改变函数的可见状态
<% begin %>
    var data = JSON.parse('<%= raw @single_case.related_orderids %>')
<% rescue %>
<% end %>

<% if !@case.nil? %>
function get_data()
{
    var data = JSON.parse('<%= raw @case.related_orderids %>')
}
<% end %>
  1. 如何将一个已定义的函数作为事件处理程序绑定到某个dom上
//函数无参数情况
//直接将函数名(函数引用)写到事件绑定函数中
$(xxx).on('click', funRef)
  
//函数有参数情况
//使用匿名函数调用该函数
$(xxx).on('click', function(){
    callFunc();
})
  1. 当上下文环境改变时如何保持this指针不变?
    使用func.bind(this)将外层的this指针传入函数内部:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

  2. 如果<table><tb>不能改变宽度是因为<tb>中的内容不能换行所致,要在<table>中加入style="word-break:break-all"

  3. 如果想实现某个模块脱离滚动条,永远固定在视口内,可以使用Fixed 定位,元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动:

p.pos_fixed
{
    position:fixed;
    top:30px;
    right:5px;

}

相关文章

  • 前端问题总结

    1. 浏览器跨域问题: 跨域问题是浏览器为了安全实施的同源策略导致的,同源策略限制了来自不同源的document、...

  • 前端问题总结

    前端传到controller中的参数都是string类型的需要自己进行转换想要的类型,例: 在js代码中也可以直接...

  • 总结前端问题

    前端经典面试题: 1、(前端面试题)https://zhuanlan.zhihu.com/p/84212558?f...

  • 前端问题总结(二)

    前端知识汇总 盒子模型 2种:IE盒子模型 W3C标准盒子模型 盒模型:内容、内边距、外边距、边框 为什么要初始化...

  • 前端问题总结(一)

    用哪几个浏览器做测试 IE -trident 谷歌 -webkit 欧朋 -presto 苹果 -webk...

  • 前端小问题总结

    1.setTimeout无效,需将调用函数加上双引号setTimeout("flushProgramUI()",f...

  • 前端学习问题总结

    1.npm中--save和--save-dev的作用和区别。 作用:自动将要安装的组件放到package.json...

  • 寒冬期前端准备总结---浏览器篇

    ⚠️⚠️传送门⚠️⚠️ 寒冬期前端准备总结---JS篇[寒冬期前端准备总结---浏览器篇]寒冬期前端准备总结---...

  • 寒冬期前端准备总结---JS篇

    ⚠️⚠️传送门⚠️⚠️ [寒冬期前端准备总结---JS篇]寒冬期前端准备总结---浏览器篇寒冬期前端准备总结---...

  • 寒冬期前端准备总结---CSS篇

    ⚠️⚠️传送门⚠️⚠️ 寒冬期前端准备总结---JS篇寒冬期前端准备总结---浏览器篇寒冬期前端准备总结---服务...

网友评论

      本文标题:前端问题总结

      本文链接:https://www.haomeiwen.com/subject/lskogttx.html