实现一套自定义事件

实现一套自定义事件机制

事件机制为我们的web开发提供了极大的方便,使得我们能在任意时候指定在什么操作时做什么操作、执行什么样的代码。

如点击事件,用户点击时触发;keydown、keyup事件,键盘按下、键盘弹起时触发;还有上传控件中,文件加入前事件,上传完成后事件。

由于在恰当的时机会有相应的事件触发,我们能为这些事件指定相应的处理函数,就能在原本的流程中插入各种各样的个性化操作和处理,使得整个流程变得更加丰富。

诸如click、blur、focus等事件是原本的......

带你了解css计数器——counters

第一次了解到这个css是因为代码高亮-prismj中行号显示的实现。

当时很好奇前面的行号是如何实现的,一探究竟原来非常简单。

话不多说,先看代码。

一段css代码经过替换后的HTML:

<pre class="line-number......

你所不知道的表格

table {table-layout:auto;}

表格 table 出现的很久了,曾经作为风靡一时的布局神器,但随着css层叠样式的各种优势,表格布局基本都已经淡出人们的视线。目前表格基本上的作用就只有用作表格了。但是由于我们对表格了解甚少,在表格上其实是有不少坑的,下面就让我们一起来填填坑。

填坑进行时

单元格宽度无效

这个是非常常见的问题了,简单重现如下:

代码:

<style>

#test1 td {

border:1px solid #333......

《悟空传》

这几天《悟空传》这部电影传火,我忙里偷闲,将《悟空传》的原书读了一遍。

如果失去是苦,你还怕不怕付出?

如果坠落是苦,你还要不要幸福?

如果迷乱是苦,该开始还是结束?

如果追求是苦,这是坚强还是执迷不悟?

之前就有看到说《西游记》其实不仅......

JavaScript排序,不只是冒泡

做编程,排序是个必然的需求。前端也不例外,虽然不多,但是你肯定会遇到。

不过说到排序,最容易想到的就是冒泡排序,选择排序,插入排序了。

冒泡排序

依次比较相邻的两个元素,如果后一个小于前一个,则交换,这样从头到尾一次,就将最大的放到了末尾。

从头到尾再来一次,由于每进行一轮,最后的都已经是最大的了,因此后一轮需要比较次数可以比上一次少一个。虽然你还是可以让他从头到尾来比较,但是后面的比较是没有意义的无用功,为了效率,你应该对代码进行优化。

图片演示如下:

......

Git入门笔记

工作的时候公司还一直用着SVN,而git作为程序员必须要掌握的技能之一,必须要掌握到,学习使用git,并进行自己业余的代码管理。

我是参照Git教程来学习的,基本上都已经涵盖了(就基础的使用来说),暂时还缺以下内容:

不同的分支合并方式

冲突处理

git服务器搭建。

这些内容暂对自己来说暂时还用不上,所以就暂时略过了。

安装后设置名称和email地址

$ git config --global user.name "Your Name"......

JavaScript 循环

JavaScript中直接提供的循环,主要有以下几种

while 循环

和其他语言一样,JavaScript中的while循环有两种形式:

while (condition) {

// 循环内容

}

do {

// 循环内容

} while (condition)

其中两种形式的不同在于,对condition判断的位置不同,前者先判断,再执行循环体;而后者先执行循环体一次,再进行条件判断。所以结果的不同就是后者能将循环内容至少执行一次。

for 循环

for循环......

JavaScript 原型链

大部分面向对象的编程语言,都是以“类”(class)作为对象体系的语法基础。JavaScript语言中是没有class的概念的(ES6之前,ES6中虽然提供了class的写法,但实现原理并不是传统的“类”class概念,仅仅是一种写法), 但是它依旧可以实现面向对象的编程,这就是通过JavaScript中的“原型对象”(prototype)来实现的。

prototype 属性

请看这样一个例子:

function Person(name, gender) {

this.name =......