欢迎光临散文网 会员登陆 & 注册

JQUERY:DOM,生成二维码,on,bind,delegate区别,事件传播和默认操作【诗书画唱】

2020-11-16 21:21 作者:诗书画唱  | 我要投稿






多播事件委托的原生JS代码:

提醒:下面的代码要想有效果就要注意相对路径等等:




可能以后会常用的遍历:




             

//              var arr = $('input[name="demo"]');

//              for(var i = 0;i < arr.length;i ++) {

//              var e = arr[i];

//              //$(e).attr('value',i + 1);

//              $(e).val(i + 1);

//              }

                $('input[name="demo"]').attr('value',function(i){

                //return的值就是value属性的修改值

                return i + 1;

                });

                

                //设置title属性第n个输入文本框

                $('input[name="demo"]').attr('title',function(i){

                return '这是第' + (i + 1) + '个文本框';

                });


生成扫后跳转到对应网站等链接的二维码:

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script type="text/javascript" srcc="js/qrcode.js" ></script>


$(document).ready(function(){

$('#code').qrcode("http://www.baidu.com"); //网址或者任意字符串

// $("#code").qrcode({

// render: "table", //table方式

// width: 200, //宽度

// height:200, //高度

// text: "www.taobao.com" //任意内容

// });

});

 

<div id="code"></div>


事件的例子集合:

<!doctype html>

<html>

    <head>

        <title>Document</title>

<style type="text/css">

html, body {

  margin: 0;

  padding: 0;

}


body {

  font: 62.5% Verdana, Helvetica, Arial, sans-serif;

  color: #000;

  background: #fff;

}

#container {

  font-size: 1.2em;

  margin: 10px 2em;

}


h1 {

  font-size: 2.5em;

  margin-bottom: 0;

}


h2 {

  font-size: 1.3em;

  margin-bottom: .5em;

}

h3 {

  font-size: 1.1em;

  margin-bottom: 0;

}


code {

  font-size: 1.2em;

}


a {

  color: #06581f;

}


.poem {

  margin: 0 5em;

}

.chapter {

  margin: 1em;

}

.switcher {

  float: right;

  background-color: #ddd;

  border: 1px solid #000;

  margin: 10px;

  padding: 10px;

  font-size: .9em;

}

.switcher h3 {

  margin: .5em 0;

}


#header {

  clear: both;

}

            /* 给large类和chaper类添加字体样式 */

body.large .chapter {

  font-size: 1.5em;

}


body.narrow .chapter {

  width: 250px;

}


.selected {

  font-weight: bold;

}


.hidden {

  display: none;

}


            /*

:hover伪类选择符,这个选择符可以让样式表在用户鼠标指针

悬停在某个元素上时,影响元素的外观

*/

.hover {

  cursor: pointer;

  background-color: #afa;

}

</style>

<script type="text/javascript" srcc="jquery-1.11.1.min.js"></script>

        <script type="text/javascript">

    $(document).ready(function() {

//关于on,bind,delegate的区别

//1.选择器匹配到的元素比较多时,不要用bind()迭代绑定

                //2.用id选择器时,可以用bind()

                //3.需要给动态添加的元素绑定时,用delegate()或者on()

                //4.用delegate()和on()方法,dom树不要太深

                //5.尽量使用on()

/*$('#switcher-default').addClass('selected')

.on('click', function() {     

$('body').removeClass('narrow');     

$('body').removeClass('large');     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

});   

$('#switcher-narrow').on('click', function() {     

$('body').addClass('narrow');     

$('body').removeClass('large');     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected'); 

                });   

$('#switcher-large').on('click', function() {     

$('body').removeClass('narrow');     

$('body').addClass('large');  

//注意这里对3个按钮同时进行了移除操作

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

}); */


//简化1

//可以把负责突出显示的代码提取到一个单独的处理程序中,因为针对3个按钮的突出显示代码都一样

/*$('#switcher-default').addClass('selected')

.on('click', function() {     

$('body').removeClass('narrow').removeClass('large');   

});   

$('#switcher-narrow').on('click', function() {     

$('body').addClass('narrow').removeClass('large');   

});   

$('#switcher-large').on('click', function() {     

$('body').removeClass('narrow').addClass('large');   

});   

$('#switcher button').on('click', function() {     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

}); */


//简化2

//removeClass()方法的参数是可选的,当省略参数时,该方法会移除元素中所有的类。

/*$('#switcher-default').addClass('selected')

.on('click', function() {     

$('body').removeClass();   

});   

$('#switcher-narrow').on('click', function() {     

$('body').removeClass().addClass('narrow');   

});   

$('#switcher-large').on('click', function() {     

$('body').removeClass().addClass('large');   

});   

$('#switcher button').on('click', function() {     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

});*/


//简化3

//把通用的处理程序转移到特殊的处理程序上方,

//因为removeClass()需要先于addClass()执行。

//在jquery中,事件绑定的函数总是按照注册顺序依次执行

/*$('#switcher-default').addClass('selected');   

$('#switcher button').on('click', function() {     

$('body').removeClass();     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

});   

$('#switcher-narrow').on('click', function() {     

$('body').addClass('narrow');   

});   

$('#switcher-large').on('click', function() {     

$('body').addClass('large');   

});*/


//简化5

//根据单击的按钮不同,

//bodyClass变量的值可能是default、narrow或large。

//在用户单击<button id="switcher-default">时给<body>

//添加default类。

//虽然在这儿添加这个类也用不着,但与因此降低的复杂性相比,

//仅仅添加一个用不上的类名还是很划算的。 

                /*$('#switcher-default').addClass('selected');   

$('#switcher button').on('click', function() {     

var bodyClass = this.id.split('-')[1];     

$('body').removeClass().addClass(bodyClass);     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');   

});*/ 


//简化6

//鉴于为某个事件(例如简单的单击事件)绑定处理程序极为常用,

//jQuery提供了一种简化事 件操作的方式——简写事件方法,

//简写事件方法的原理与对应的.on()调用相同,

//可以减少一定的代码输入量。 

/*$('#switcher-default').addClass('selected');   

$('#switcher button').click(function() {     

var bodyClass = this.id.split('-')[1];     

$('body').removeClass().addClass(bodyClass);     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');  

});*/


                //变化1

//实现的效果是在标签上单击能够隐藏所有按钮后只剩一个标签;

//而再次单击标签则会恢复这些按钮

/*$('#switcher h3').click(function() {     

$('#switcher button').toggleClass('hidden');   

});*/ 


//变化2

//通过css中的hover伪类和jquery中的hover帮助函数实现翻转功能

/*$('#switcher h3').hover(function() {     

$(this).addClass('hover');   

}, function() {     

$(this).removeClass('hover');   

});*/ 


//变化3

//这种改变会使样式转换器的整个区域都可以通过单击切换其可见性。

//但同时也造成了一个问题,即单击按钮会在修改内容区的样式之后折叠样式转换器。

/*$('#switcher').click(function() {     

    $('#switcher button').toggleClass('hidden');   

    });*/


//变化4

//为了在处理程序中使用事件对象,需要为函数添加一个参数event:

//事件处理程序中的变量event保存着事件对象。

//而event.target属性保存着发生事件的目标元素。

//这个属性是DOM API中规定的,但是没有在某些旧版本的浏览器中实现。

//jQuery对这个事件对象进行了必要的扩展,从而在任何浏览器中都能够使用这个属性。

//通过.target,可以确定DOM中首先接收到事件的元素(即实际被单击的元素)。

//而this引用的刚好是处理事件的DOM元素

//注意,单击标签 <h3>同样什么也不会发生,因为它也是一个后代元素。

/*$('#switcher').click(function(event) {

    if(event.target == this) {

    $('#switcher button').toggleClass('hidden');

    });*/


//变化5

//通过stopPropagation()方法完全阻止事件冒泡

$('#switcher-default').addClass('selected');   

/*$('#switcher button').click(function(event) {     

var bodyClass = this.id.split('-')[1];     

$('body').removeClass().addClass(bodyClass);     

$('#switcher button').removeClass('selected');     

$(this).addClass('selected');

//避免其他所有DOM元素响应这个事件

event.stopPropagation(); 

});

$('#switcher').click(function(event) {     

    $('#switcher button').toggleClass('hidden');   

});*/


//默认操作:例如a标签的href页面跳转,表单提交等,都是默认的操作

//即便在事件对象上调用.stopPropagation()方法也不能禁止这种默认操作,

//因为默认操 作不是在正常的事件传播流中发生的。

//在这种情况下,preventDefault()方法则可以在触发默认操作之前终止事件。  

$('#aLink').click(function(event){

alert('hello');

//阻止跳转到百度页面

event.preventDefault();

//阻止页面折叠

event.stopPropagation();

//注意:事件传播和默认操作是相互独立的两套机制,

//在二者任何一方发生时,都可以终止另一方。 

//如果想要同时停止事件传播和默认操作,

//可以在事件处理程序中返回false,

//这是对在事件对象上同时调用stopPropagation()和preventDefault()的一种简写方式。 

});


//变化6

//只有3个button元素注册了单击处理程序。

//假如想为更多元素注册处理程序怎么办?答案是:事件委托

//在DOM中的一个祖先元素上指定一个单击处理程序。

//由于事件会冒泡,未遭拦截的单击事件终会到达这个祖先元素,

//而我们可以在此时再作出相应处理。 

/*$('#switcher').click(function(event) {     

    if ($(event.target).is('button')) {       

    var bodyClass = event.target.id.split('-')[1];       

$('body').removeClass().addClass(bodyClass);       

$('#switcher button').removeClass('selected');       

$(event.target).addClass('selected');       

event.stopPropagation();     

} else {       

$('#switcher button').toggleClass('hidden');     

}   

});*/


//变化7

//实现点击Narrow Column或Large Print按钮时,

//switcher面板不进行折叠

//以下的写法会导致两个按钮的click处理程序也失效了

/*$('#switcher-narrow, #switcher-large').click(function() {     

$('#switcher').off('click');   

});*/


//变化7

//连续偶数次单击default按钮后,点击折叠面板无任何响应

//事实上,这是因为切换了hidden类偶数次,结果状态与开始的时候相同。

/*$('#switcher').click(function(event) {     

    if ($(event.target).is('button')) {       

    var bodyClass = event.target.id.split('-')[1];       

$('body').removeClass().addClass(bodyClass);       

$('#switcher button').removeClass('selected');       

$(event.target).addClass('selected');       

event.stopPropagation();     

}   

});

var toggleSwitcher = function(event) {     

if (!$(event.target).is('button')) {       

$('#switcher button').toggleClass('hidden');     

}   

};   

$('#switcher').on('click.collapse', toggleSwitcher);   

$('#switcher-narrow, #switcher-large').click(function() {

$('#switcher').off('click.collapse');

});   

$('#switcher-default').click(function() {     

$('#switcher').on('click.collapse', toggleSwitcher);  

})*/


                //变化8

//为了解决变化7中的问题, 可以在用户单击任意按钮时解除绑定,

//并在确定单击按钮的ID是switcher-default的情况下再重新绑定

                $('#switcher').click(function(event) { 

    if ($(event.target).is('button')) {       

    var bodyClass = event.target.id.split('-')[1];       

$('body').removeClass().addClass(bodyClass);       

$('#switcher button').removeClass('selected');       

$(event.target).addClass('selected');       

event.stopPropagation();     

}   

});

var toggleSwitcher = function(event) {     

if (!$(event.target).is('button')) {       

$('#switcher button').toggleClass('hidden');     

}   

};   

$('#switcher').on('click.collapse', toggleSwitcher);

$('#switcher button').click(function() {     

$('#switcher').off('click.collapse');     

if (this.id == 'switcher-default') {       

$('#switcher').on('click.collapse', toggleSwitcher);     

}   

}); 


//模拟用户操作

//假设想让样式转换器面板在一开始时处于折叠状态。

//可以模拟单击样式转换器,以触发设定的折叠机制

//$('#switcher').trigger('click'); 


//trigger()方法提供了一组与on()方法相同的简写方法。

                $('#switcher').click();


//给按钮绑定响应键盘事件

//如果想知道用户按了哪个键,应该侦听keyup或keydown事件;

//如果想知道用户输入的是什么字符,应该侦听keypress事件

var triggers = {     

D: 'default',     

N: 'narrow',     

L: 'large'   

};   

$(document).keyup(function(event) {

//ascii是个数字

var ascii = event.which;

//转换成字符

var key = String.fromCharCode(ascii); 

if (key in triggers) {       

$('#switcher-' + triggers[key]).click();     

}   

});


}); 

</script>

    </head>

    <body>

        <div id="container">

    <div id="switcher">

<h3>Style Switcher</h3>

<button id="switcher-default">

  Default

</button>

<button id="switcher-narrow">

  Narrow Column

</button>

<button id="switcher-large">

  Large Print

</button>

        <a id="aLink" href="http://www.baidu.com" >点击测试</a>

    </div>


    <div id="header">

    <h2>A Christmas Carol</h2>

    <h2>In Prose, Being a Ghost Story of Christmas</h2>

    <div>by Charles Dickens</div>

    </div>


    <div id="chapter-preface">

    <h3>Preface</h3>

    

    <p>Their faithful Friend and Servant,</p>

    <p>C. D.</p>

    <p>December, 1843.</p>

    </div>


    <div id="chapter-1">

    <h3>Stave I: Marley's Ghost</h3>

    <p>MARLEY was dead: to begin with. </p>

    <p>Mind! </p>

    <p>Scrooge knew he was dead? </p>

    <p>The mention of Marley's funeral brings me back to the point I started from. </p>

    <p>Scrooge never painted out Old Marley's name. </p>

    <p>Oh!</p>

    <p>External heat and cold had little influence on Scrooge.  </p>

    <p>Nobody ever stopped him in the street to say, with gladsome looks, "My dear Scrooge, how are you? </p>

    <p>But what did Scrooge care! It was the very thing he liked. </p>

</div>

</div> 

    </body>

</html>

DOM和CSS操作:


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

.bg {

    background-color: pink;

}

</style>

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script>

$(function(){

//将id为inp的元素的type属性修改为button

//document.getElementById('inp').type = 'button';

$('#inp').attr('type','button');


var str = '<img src="img/25.png" />';

//设置id为ctx的div中的html代码

$('#ctx').html(str);

//设置div中的文本

//$('#ctx').text(str);


//获取id为ctx的div中的html代码

var s = $('#ctx').html();

//alert(s);


//将id为inp的输入文本框中的值修改为admin

//document.getElementById('inp').value = 'admin';

$('#inp').val('admin');

//alert($('#inp').val());

//$('#inp')[0].value = 'admin';

//$('#inp').get(0).value='admin';

//$('#inp').attr('value','admin');


//document.getElementById('myImg').src = 'img/25.png';

$('#myImg').attr('src','img/25.png');

//获取id为myImg的元素的src属性值

//alert($('#myImg').attr('src'));


// alert($('#inp').attr('id'));

// alert(document.getElementById('inp').id);

// alert($('#inp')[0].id);

// alert($('#inp').get(0).id);


                //将id为rd的元素的type属性设置为radio,value属性设置为男,name属性设置为sex

                $('#rd').attr({

                type:'radio',

                value:'男',

                name:'sex'

                });

                

                //将id为ig的元素的src属性修改为img/12.png,并且将它的name属性设置为mm

                $('#ig').attr({

                src:'img/12.png',

                name:'mm'

                });

                

//              var arr = $('input[name="demo"]');

//              for(var i = 0;i < arr.length;i ++) {

//              var e = arr[i];

//              //$(e).attr('value',i + 1);

//              $(e).val(i + 1);

//              }

                $('input[name="demo"]').attr('value',function(i){

                //return的值就是value属性的修改值

                return i + 1;

                });

                

                //设置title属性第n个输入文本框

                $('input[name="demo"]').attr('title',function(i){

                return '这是第' + (i + 1) + '个文本框';

                });

//              var arr1 = $('input[name="demo"]');

//              for(var i = 0;i < arr1.length;i ++) {

//              var e = arr1[i];

//              $(e).attr('title','这是第' + (i + 1) + '个文本框');

//              }


                //将页面中name属性为tt的所有的img标签设置对应图片

                //要求第一个img标签显示1.png,第二个img标签显示2.png,第三个img标签显示3.png

                $('img[name="tt"]').attr('src',function(i){

                return 'img/' + (i + 1) + '.png';

                });

                

                //alert($('#inp').css('width'));

                

//              var ds = $('div.bg');

//              for(var i = 0;i < ds.length;i ++) {

//              var e = ds[i];

//              $(e).css('width',(i + 1) * 50 + 'px');

//              }

                $('div.bg').css('width',function(i){

                return (i + 1) * 50 + 'px';

                });

})

</script>

</head>

<body>

<div class="bg">AAA</div>

<div class="bg">BBB</div>

<div class="bg">CCC</div>

<img name="tt" />

<img name="tt" />

<img name="tt" />

<input name="demo" type="text"/>

<input name="demo" type="text"/>

<input name="demo" type="text"/>

<input id="inp" type="text" value="登录"/>

<div id="ctx"></div>

<img id="myImg" />

<input id="rd" />男

<img id="ig" />

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script>

$(function(){

//$('div').wrapAll('<ul></ul>').wrap('<li></li>');


$('div').wrapAll('<table border="1"></table>').wrap('<tr><td></td></tr>');


});

</script>

</head>

<body>

<div>语文</div>

<div>数学</div>

<div>英语</div>

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script>

$(function(){

//在页面中插入一个下拉框

//var dom = '<select><option>本科</option><option>大专</option><option>高中</option></select>';

//将dom元素转换成jquery对象

//内部的前面:

//正向的插入元素

//$('body').append($(dom));

//反向的插入元素

//$(dom).appendTo($('body'));


//内部的后面:

//var btn = '<input type="button" value="选择" />';

//$('body').prepend($(btn));


//往id为ctx的元素的内部的前面添加一个<label>珠宝</label>标签

//往id为ctx的元素的内部的后面添加一个<a href="#">浏览</a>标签

var sc = '<label>珠宝</label>';

$('#ctx').prepend($(sc));

var cc = '<a href="#">浏览</a>';

$('#ctx').append($(cc));


$('p').append(function(i,html){

return i + 1;

});

// var arr = $('p');

// for(var i = 0;i < arr.length;i ++){

// //获取到选中的每个元素

// var e = arr[i];

// var html = $(e).html();

// $(e).append(i + 1);

// }

                //往id为ctx的元素的外部的前面插入一个a链接

                $('#ctx').before($('<a href="#">测试</a>'));

                //往id为ctx的元素的外部的后面插入一个按钮

                $('#ctx').after($('<input type="button" value="点击" />'));

});

</script>

</head>

<!-- 外部的前面 -->

<body>

<!-- 内部的前面 -->

<h1>学历</h1>

<div>Hello world</div>


<div id="ctx"><img src="img/1.png" /></div>


<p><span>A</span></p>

<p><span>B</span></p>

<p><span>C</span></p>

<!-- 内部的后面 -->

</body>

<!-- 外部的后面 -->

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script>

$(function(){

// document.getElementById('btn').onclick = function(e){

// alert(1);

// }

// document.getElementById('btn').onclick = function(e){

// alert(2);

// }

// document.getElementById('btn').onclick = function(e){

// alert(3);

// }


// document.getElementById('btn').addEventListener('click',function(){

// alert(1);

// })

// document.getElementById('btn').addEventListener('click',function(){

// alert(2);

// })

// document.getElementById('btn').addEventListener('click',function(){

// alert(3);

// })

//多播事件委托

// $('#btn').bind('click',function(e){

// alert(1);

// });

//简化写法

// $('#btn').click(function(e){

// alert(2);

// });


var obj = {cmd:'done'};

$('#btn').bind('click',obj,function(e){

//e.data其实就是obj

//alert(e['data'].cmd);

console.log(e);

})

});

</script>

</head>

<body>

<input type="button" id="btn" value="测试" />

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

.myCss {

width: 64px;

height: 64px;

position: absolute;

left: 350px;

top: 150px;

}

</style>

<script type="text/javascript" srcc="js/jquery-1.11.0.js" ></script>

<script>

$(function(){

$('body').keydown(function(e){

//获取到图片的位置

var os = $('#myImg').offset();

var t = os.top;

console.log('图片距离上边的距离是:' + t + '像素');

var l = os.left;

console.log('图片距离左边的距离是:' + l + '像素');

//图片的路径

var path = '';

if(e.keyCode === 38) {//上

t -= 20;

path = 'img/ele1.png';

} else if(e.keyCode === 40) {//下

t += 20;

path = 'img/ele2.png';

} else if(e.keyCode === 37) {//左

l -= 20;

path = 'img/ele3.png';

} else if(e.keyCode === 39) {//右

l += 20;

path = 'img/ele4.png';

}

//将位置的变化显示出来

$('#myImg').offset({

top: t,

left: l

});

//改变图片的src属性

$('#myImg').attr('src',path);

});

});

</script>

</head>

<body>

<img id="myImg" src="img/ele1.png" class="myCss" />

</body>

</html>



作业:



   <!-- 

(1) 在Charles Dickens被单击时,给它应用selected样式。 

(2) 在双击<h3 class="chapter-title">时,切换p文本的可见性。 

(3) 当用户按下向右方向键时,切换到下一个body类;右方向键的键码是39。 

(4) 挑战:使用console.log()函数记录在段落中移动的鼠标的坐标位置。 

(5) 挑战:使用mousedown()和mouseup()跟踪页面中的鼠标事件。

    如果鼠标按键在按下它的地方被释放,则为所有段落添加hidden类。

    如果是在按下它的地方之下被释放的, 删除所有段落的hidden类。

-->



// // (1) 在Charles Dickens被单击时,给它应用 selected 样式。
$(document).ready(function() {
$('#header').on('click',function() {
$('.author').addClass('selected')
});

})

 

// (2) 在双击章标题( <h3 class="chapter-title"> )时,切换章文本的可见性。
$(document).ready(function() {
$('#chapter-preface').on('dblclick',function() {
$('.chapter-title').toggleClass('hidden');
})

})

 


// (3) 当用户按下向右方向键时,切换到下一个 body 类;右方向键的键码是 39 。
// var setBodyClass=function(className){
// $("body").removeClass().addClass(className);
// $(".switcher button").removeClass("selected");
// $("#switcher-"+className).addClass("selected");
// }
// //页面初始时默认为选中状态
// $("#switcher-default").addClass("selected");
// $(document).keyup(function (event) {
// var num=$(".switcher button").filter(".selected").index()-1;
// alert(num);
// if(event.which==39) num=(num+1)%3;
// else if(event.which==37) num=(num-1)%3;
// else return false;
// var btnClassname=$(".switcher button").eq(num).attr("id").split("-")[1];
// setBodyClass(btnClassname);
// })

// 第二种方法
$(function(){
var setBodyClass=function(className){
$("body").removeClass().addClass(className);
$(".switcher button").removeClass("selected");
$("#switcher-"+className).addClass("selected");

}
$("#switcher-default").addClass("selected");//页面初始时默认为选中状态
var bodyClass=["default","narrow","large"];
var count=0;//设置一个计数器
$(document).keyup(function(event){
if (event.keyCode == 39) {
setBodyClass(bodyClass[(count+1)%3]);//如果设置为count%3则在第一次按下右键时页面不会有反应(因为默认是setBodyClass[0])
count++;
}

})
})

 

 

// (4) 挑战:使用 console.log() 函数记录在段落中移动的鼠标的坐标位置。(注意: console.log()可以在Firefox的firebug扩展、Safari的Web Inspector或Chrome、IE中的Developer Tools中使用。)
//获取鼠标坐标函数
$(document).ready(function(){
//获取鼠标坐标函数
$(document).mouseover(function(e) {
         var x = e.pageX;
         var y = e.pageY;
console.log('x坐标'+x+','+'y坐标'+y);
})
})

// (5) 挑战:使用 .mousedown() 和 .mouseup() 跟踪页面中的鼠标事件。如果鼠标按键在按下它的地方被释放,则为所有段落添加 hidden类。如果是在按下它的地方之下被释放的,删除所有段落的 hidden 类。
$(document).ready(function(){
       varposxr=0,posy=0; 
$(document).mousedown(function(event){
      posx=event.clientX;
      posy=event.clientY;
}) 
$(document).mouseup(function(event){
     posx1=event.clientX;
     posy1=event.clientY; 
     if(posy1==posy&&posx==posx1){
              $('p').addClass('hidden')
}

else if(posy1>posy){ 
$('p').removeClass('hidden')
}

})
})



<!doctype html>

<html>

    <head>

        <title>Document</title>

<style type="text/css">

html, body {

  margin: 0;

  padding: 0;

}


body {

  font: 62.5% Verdana, Helvetica, Arial, sans-serif;

  color: #000;

  background: #fff;

}

#container {

  font-size: 1.2em;

  margin: 10px 2em;

}


h1 {

  font-size: 2.5em;

  margin-bottom: 0;

}


h2 {

  font-size: 1.3em;

  margin-bottom: .5em;

}

h3 {

  font-size: 1.1em;

  margin-bottom: 0;

}


code {

  font-size: 1.2em;

}


a {

  color: #06581f;

}


.poem {

  margin: 0 5em;

}

.chapter {

  margin: 1em;

}

.switcher {

  float: right;

  background-color: #ddd;

  border: 1px solid #000;

  margin: 10px;

  padding: 10px;

  font-size: .9em;

}

.switcher h3 {

  margin: .5em 0;

}


#header {

  clear: both;

}


body.large .chapter {

  font-size: 1.5em;

}


body.narrow .chapter {

  width: 250px;

}


.selected {

  font-weight: bold;

}


.hidden {

  display: none;

}


.hover {

  cursor: pointer;

  background-color: #afa;

}

</style>

<script type="text/javascript" srcc="jquery-1.11.1.min.js"></script>

        <script type="text/javascript">

    $(document).ready(function() {

                $('#switcher').click(function(event) { 

    if ($(event.target).is('button')) {       

    var bodyClass = event.target.id.split('-')[1];       

$('body').removeClass().addClass(bodyClass);       

$('#switcher button').removeClass('selected');       

$(event.target).addClass('selected');       

event.stopPropagation();     

}   

});

var toggleSwitcher = function(event) {     

if (!$(event.target).is('button')) {       

$('#switcher button').toggleClass('hidden');     

}   

};   

$('#switcher').on('click.collapse', toggleSwitcher);

$('#switcher button').click(function() {     

$('#switcher').off('click.collapse');     

if (this.id == 'switcher-default') {       

$('#switcher').on('click.collapse', toggleSwitcher);     

}   

}); 

                $('#switcher').click();

var triggers = {     

D: 'default',     

N: 'narrow',     

L: 'large'   

};   

$(document).keyup(function(event) {

var ascii = event.which;

var key = String.fromCharCode(ascii); 

if (key in triggers) {       

$('#switcher-' + triggers[key]).click();     

}   

});


}); 

</script>

    </head>

    <body>

 

        <div id="container">

    <div id="switcher">

<h3>Style Switcher</h3>

<button id="switcher-default">

  Default

</button>

<button id="switcher-narrow">

  Narrow Column

</button>

<button id="switcher-large">

  Large Print

</button>

        <a id="aLink" href="http://www.baidu.com" >点击测试</a>

    </div>


    <div id="header">

    <h2>A Christmas Carol</h2>

    <h2>In Prose, Being a Ghost Story of Christmas</h2>

    <div>by Charles Dickens</div>

    </div>


    <div id="chapter-preface">

    <h3>Preface</h3>

   

    <p>Their faithful Friend and Servant,</p>

    <p>C. D.</p>

    <p>December, 1843.</p>

    </div>


    <div id="chapter-1">

    <h3>Stave I: Marley's Ghost</h3>

    

    <p>Nobody ever stopped him in the street to say, with gladsome looks, "My dear Scrooge, how are you? </p>

    <p>But what did Scrooge care! It was the very thing he liked. </p>

</div>

</div> 

    </body>

</html>


 



JQUERY:DOM,生成二维码,on,bind,delegate区别,事件传播和默认操作【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律