冒泡,setinterval,背景图的div绑定事件,匿名函数问题--工作中的思考

<1>会冒泡到兄弟元素么?

$(function(){
$("#a").click(function(){alert("a")})
$("#b").click(function(){alert("b")})
$("#c1").click(function(){alert("c1")})
$("#c2").click(function(){alert("c2")})
})

点击c1色块弹框顺序:c1->b->a

并没有冒泡到兄弟元素c2

<2>setinterval的用法,传递参数问题

解决:

  1>通用的用法

        a:不传参

function hui(){
                alert("每隔3秒调用一次")
            }
            setInterval()

 b:传参

function hui(str){
    alert(str);
}

setInterval(hui,3000,"你好");//只有这样写才正确
如果改成:setInterval("hui",3000,"你好")//不起作用
如果改成:setInterval("hui()",3000,"你好")//起作用,弹出undefined

2>对象的方法

var onj={};
onj.ki=function (){

alert("每隔3秒弹出一次")
 }
setInterval(onj.ki,3000);

使用百度百科中的:

myobj=new Object();//创建一个新的对象
myobj.interval=function(){ alert("每隔1秒我就会显示一次");}//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。

有问题,会报错!

应该是下面的那个调用写错了。

<3>给有背景图的div绑定事件,不起作用?

解决:

div的背景图是有事件被触发的

<4>移入移出在父div绑定的事件,里面的子div也会出发相应的事件?

解决:也是冒泡事件!

$("#a").mouseover(function(){alert("a")})
$("#b").mouseover(function(){alert("b")})
$("#c1").mouseover(function(){alert("c1")})
$("#c2").mouseover(function(){alert("c2")})

上面例子中移入b中触发事件,事件冒泡到a,触发a的移入事件。

直接用:return false;解决

<5>window.close不起作用?

 

<6>打开链接也不起作用?母版问题?

 <7>如果给一个div同时设定背景色与背景图会怎么样?

解决:背景图覆盖背景色,但是背景色依旧存在

<8>匿名函数问题

例子:

//第一种:可以

(function(){

a("OK");
})()

function a(str){alert(str)}

//第二种:不可以,显示:a没有定义

(function(){

function a(str){alert(str)}
})()
a("OK");

//第三种:可以

(function(){

a("OK");
function a(str){alert(str)}
})()
时间: 2024-11-02 23:31:46

冒泡,setinterval,背景图的div绑定事件,匿名函数问题--工作中的思考的相关文章

js事件绑定--支持匿名函数解除绑定

废话不多说,直接上代码 var handlers = {}, bind = (function (){ if(window.addEventListener){ return function (el, type, callback, capture){ el.addEventListener(type, function (){ callback(); handlers[type] = handlers[type] || []; handlers[type].push(arguments.ca

几种基本样式,背景图,字体,下划线,行高垂直等

<div style=:width:600px; heiget:600px; background-color:...; background-image; background-repea:...; background-position; 宽度               高度                背景颜色                     背景图片                   背景图平铺                 背景图位置 background-attach

js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法

js的事件绑定方法中,ie仅仅支持attachEvent,而FF和Chrome仅仅支持addEventListener,所以就必须为这两个方法做兼容处理,原理是先推断attachEvent仅仅否为真(存在),假设为真则用attachEvent()方法.否则的话就用addEventListener(). 另外,为了避免每次绑定事件时都要做推断.能够封装一个函数myAddEvent(obj,ev,fn){}. 代码例如以下: <!DOCTYPE html> <html> <hea

javascript中通过匿名函数进行事件绑定

事件绑定,匿名函数中获取当前元素对象直接this.属性

每日一题_JavaScript.两种方式实现网页加载后onload绑定多个函数?

具体需求: 1. 为网页加载后触发的onload事件绑定多个执行函数 实现思路: 1. 可直接给onload绑定一个匿名函数,匿名函数内部调用多个函数 2. 可自定义个函数,首先保存之前window.onload的值,然后判断window.onload的类型是否为function,如果不是就让window.onload的值设置为自定义的函数,否则就先执行window.onload之前绑定的函数,然后在执行自定义的函数 具体代码: <!DOCTYPE html> <html>    

JS中绑定事件顺序(事件冒泡与事件捕获区别)

在JS中,绑定的事件默认的执行时间是在冒泡阶段执行,而非在捕获阶段(重要),这也是为什么当父类和子类都绑定了某个事件,会先调用子类绑定的事件,后调用父类的事件.直接看下面实例 <!Doctype html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{margin:0;p

body和普通div背景图宽高百分比的区别

body和普通div背景图的区别 background: url(//m.360buyimg.com/mobilecms/s220x220_jfs/t2746/167/831241799/299152/1731092b/5728423cNa16c83cb.jpg!q70.jpg);    background-size: 100% 100%;    position: absolute;    height: 100px;    width: 100%; 你给body这个设置,和给一般的div这

多个div背景图无缝拼接

公司在做环形进度条的时候遇到了这个问题,上网一搜,原来是因为两个div背景图拼接起来的,所以中间出现了必不可少的缝隙,最后把position改为relative,再加个margin:0,就解决好了,下图为前后的截图对比.

js小技巧: 给div绑定keydown事件

要想给一个元素绑定keydown事件我们经常这样: $('#some_thing').keydown(function(event){ ...... }) 但是当你尝试给div元素绑定时会发现不起作用, 解决办法是给这个div添加一个tabindex的属性: $('#some_div').attr('tabindex', 1).keydown(function(event){ ...... }) js小技巧: 给div绑定keydown事件