依旧无题-最近一周的错误总结

  说写就开干的博客,虽然可以我说的漏洞百出,可是我依旧要记录下来,不过,可能不会有多少人像我一样ZZ(笑~)

  上周的项目还是做PC管理系统中的功能配置,哎,移动端不给我这个新人做,我也好想试试rem+媒体查询的布局啊~

  前提:高傲的前端从不屑于搞兼容,哼~

  1.需求:点击按钮,本地上传文件

     其实就是点击到了<input type="file">,给input type=file设置为opacity=0即可

    但是,我是要有多蠢,才会把input裹在button里面?效果如下

  

  然后,友好高情商的Chrome完全没有问题,其他的浏览器都有问题了!估计其他浏览器都想弄死我,两个可被点击的标签放在一起,到底点击哪一个?只有chrome承认,点击内部的input,其他的浏览器都认定button里面嵌套input就是错误的,点击就只有button的效果。

  解决:放弃了点击按钮陷下去的良好手感,也就是把button换成了span标签

 

  2.需求:把input type=file里面的文件传给后台

  使用到了form.submit,具体的我还不是很清楚,知其然,不知其所以然,所以只提一点,

  在form标签中你要写一个target='id',我们的做法就是id为建立的一个iframe的id名,iframe的样式为"display: none;"

  如果不给设置一个target,使用form.submit时,会把后台数据接收到新标签页(默认),也就是会进行一个页面的跳转操作,用户体验度瞬间差好多。

  

  3.关于textarea

  我想要根据textarea获取到回车键的操作,最后得出,textarea中输入文本时,敲击回车键,会在数据中存储一个'\n',所以,通过\n,可以在获取textarea时,分段

  

  4.为什么要解除事件绑定?

  我们知道,事件是绑定在元素上的,对元素进行操作会导致事件的触发。如果事件2嵌套在事件1中呢?如下图

  

  每一次点击span1,都会给span2存储一次点击事件,真正的点击span2时,会一次性把存储下来的所有的事件全部出发,

  我们重复的点击span1,span2,span1,span2,结果就是

  

  天呐,这么坑,我也懒得管那么多了,基本所有的事件,我都会先解绑在绑定,管它怎么滴的,我的两种解绑方式:

  

 

   5.事件委托

  js动态创建的元素,也就是未来元素,只能通过事件委托,才能够对未来元素进行操作,使用的是jQeury的on()方法,如上图解绑方法二

  父元素必须是static元素啊,最好是距离真实元素最近的父元素啊,this指向父元素,e.target指向真实元素啊,等等老生常谈的我就不提了,

  要说的一点是,给父元素绑定两个click事件,虽然真实元素不同,但是事件都是click,所以默认为一个类型,因此,下面的click会覆盖住上面的clcik事件,如下图  

  

  解决方法:父元素不间断的直接写两个on事件,不能断掉,如图:

  

 

  总结一下:

    我上面的经验,全都是菜鸟,学的不扎实导致的错误,甚至可能我上面写的都依旧有问题。

    一步步走吧,希望早日牛逼哄哄,用代码创造自我的世界!

  

  

posted @ 2016-12-12 16:09  wplay  阅读(326)  评论(5编辑  收藏  举报