侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

javascript基本知识学习3

2024-05-08 星期三 / 0 评论 / 0 点赞 / 73 阅读 / 18132 字

事件流 事件冒泡 事件捕获 ,按相反的方向查找 DOM2级事件 事件处理程序 DOM0级事件程序 DOM2级事件处理程序 IE事件处理程序 事件对象 IE中的事件对象 跨浏览器的事件对象

事件流

事件冒泡

事件捕获 ,按相反的方向查找

 

DOM2级事件

 

 

事件处理程序

DOM0级事件程序

DOM2级事件处理程序

IE事件处理程序

 

 

事件对象

 

IE中的事件对象

 

跨浏览器的事件对象

 

 

事件类型

DOM33级锁定以下事件

UI

焦点

鼠标

滚轮

文本

键盘

合成

变动

变动名称

 

 

添加了大量的事件处理程序,这时就要去考虑事件和性能

 

事件委托

 

<ul id="myLinks">

         <li id="goSomewhere">Go goSomewhere</li>

         <li id="doSomething"> doSomething</li>

         <li id="sayHi">Say hi</li>

 

 

</ul>

 

 

var item1=docunment.getElementById("goSomewhere");

var =item2=docunment.getElementById("doSomething");

var item3=docunment.getElementById("sayHi");

EvenUtil.addHandler(item1,"click",function(event){

         location.href="http://www.wrox.com";

});

EvenUtil.addHandler(item2,"click",function(event){

         location.title="I cha  the docuemnt's title";

});

EvenUtil.addHandler(item3,"click",function(event){

         consoel.log("HI");

});

//事件委托,在DOM的最高层添加一个事件处理程序

var list=document.getElementById("myLinks");

EvenUtil.addHandler(list,"click",function(event){

         event=EvenUtil.getEvent(event);

         var target=EvenUtil.getTarget(event);

         switch(target.id){

                   case "doSomething":

                            docunment.title="i changed the document 's title";

                            break;

                   case "goSomewhere":

                            location.href="http://www.wrox.com";

                            break;

                   case "sayHi":

                   `alert("hi");

                   break;

         }

});

模拟事件

IE中的事件模拟

 

 

表单脚本

提交表单

重复表单

选择文本select()方法,选择文本框中的所有文本

 

移除选择框选项

Selectbox.removeChild(selectbox.optioms[0]);

selectbox.remove(0)

 

 

在表单提交期间,浏览器是如何将数据发送给服务器的:

对表单字段的名称和值进行url编码,使用和号(&)分割

不发送禁用的表单字段

只发送勾选的复选框和单选按钮

不发送typeresetbutton的按钮

多选选择框中每个选中的值单独一个条目

单击提交按钮提交表单的情况下,也会发送提交按钮;否则,不发送提交按钮,也包括tyoeimageinput元素

Select元素的值,就是选中的optiom元素的value特性的值,如果option元素没有value特性,则是optiom元素的文本值

 

富文本编辑

 

 

 

 

练习代码

var person1 ={

         name: "Nicholas"

};

var person={}

Object.defineProperty(person,"name",{

         configurable: false,

         writable:false,

         value:"Nicholas"

});

console.log(person.name);

person.name="Greg";

console.log(person.name);

//构造器模式

function Personq(name,age,job){

         this.name=name;

         this.age=age;

         this.job=job;

         this.sayName =function(){

                   console.log(this.name);

         };

}

var person3=new Personq("tt",29,'Engineer');

var preson4=new Personq("yy",29,"driver");

//这样写,避免每一个属性前面都加上Person.prototype麻烦

function Person(){}

 

Person.prototype ={

         //con属性指向特定值,保证能够正确访问到

         constructor:Person ,

name :'ss',

age :29,

job:'checker',

sayName:function (){

         console.log(this.name);

}

};

//dom操作,动态脚本

 

<script type='text/javascript' src='client.js'></script>

function loadScript(url){

var script =document.createElement("script");

script.type="text/javascript";

srcipt.src="client.js";

document.body.appendChild(script);

}

loadScript('client.js');

 

var script=document.createElement("script");

script.type="text/javascript";

script.appendChild(document.createTextNode('function sayHi(){alert('hi');}'));

 

document.body.appendChild(script);

//IE中的写法

var script=document.createElement('script');

script.type='text/javascript';

script.text='function sayHi(){alert('hi');}';

document.body.appendChild(script);

//动态样式

//<link rel ='stylesheet' type='text/css' href='styles.css'>

var link=document.createElement("link");

link.rel='stylesheet';

link.type='text/css';

link.href='style.css';

var head=document.getElementsByTagName('head')[0];

head.appendChild(link);

 

 

selectbox.opitions[0]=null;

function clearSelectbox(selectbox){

         for(var i=0,len=selectbox.options.length;i<len;i++){

                   selectbox.remove(i);

         }

}

移动和重排选项

 

var selectbox1=document.getElementById("selLocations1");

var selectbox2=document.getElementById("selLocations2");

selectbox2.appendChild(selectbox1.options[0]);

<!--

向前移动一个选项

-->

 

var optionToMove=selectbox.opitions[1];

selectbox.insertBefore(optionToMove,selectbox.opitions[optionToMove.indxe-1]);

<!--

向后移动一个选项

-->

 

var optionToMove=selectbox.opitions[1];

selectbox.insertBefore(optionToMove,selectbox.opitions[optionToMove.indxe+2]);

 

 

<!--序列化表单代码-->

function serialize(form){

         var parts=[],

         field=null,

         i,len,j,optLen,option,optValue;

         for(i=0,len=form.elements.length;i<len;i++){

                   field=form.elements[i];

                   swith(field.type){

                            case "select-one":

                            case "select-multiple":

                            if(field.name.length){

                                     for(j=0,optLen=field.opitions.length;j<optLen;j++){

                                               option=field.options[j];

                                               if(option.selected){

                                                        optValue="";

                                                        if(option.hasAttribute){

                                                                 optValue=(option.hasAttribute("value")?option.value:option.text);

                                                        }else{

                                                                 optValue=(option.attributes["value"].specified?option.value:option.text);

                                                        }

                                                        parts.push(encodeURIComponent(field.name)+"="+encodeURIComponent(optValue))

                                               }

                                     }

                            }

                            break;

                            case undefined:

                            case "file":

                            case "submit":

                            case "reset":

                            case "button":

                            break;

                            case "radio":

                            case "checkbox":

                                    if(!field.checked){

                                             break;

                                    }

                            default:

                   }

         }

 

}

 

 

广告 广告

评论区