cout是个对象,$this指向cout的this对象避免与dom对象冲突,整个方法就是单击<div class=".bb">200</div> 获得倒数的起始值($this.name),开始倒数。
1 var cout = { 2 init:function (classname) { 3 var $this = this 4 if (classname) { 5 var classname = classname 6 } 7 else { 8 var classname = ".bb" 9 } 10 $(document).delegate(classname, "click", function () { 11 12 $this.pri(this) 13 }) 14 }, 15 pri:function (obj) { 16 var $this = this 17 18 function temp() { 19 $this.name = parseInt($(obj).text()) 20 $this.name = $this.name - 1 21 var temp = arguments.callee 22 $(obj).html($this.name) 23 if ($this.name > 0) { 24 window.setTimeout(function () { 25 temp() 26 }, 100) 27 } 28 29 } 30 31 temp() 32 33 34 } 35 } 36 37 cout.init(".bb")
问题在于div不止一个,有<div class="bb">200</div><div class="bb">500</div>
而$this.name,cout对象的name属性只有一个是公共的。
可是当把$this.name = parseInt($(obj).text()) 定义在temp()内部的时候却可以正常执行,放在temp()外部就会有问题求解
PLS NOTICE LINE 19,20 $THIS.NAME IS CHANGING