您的位置:首页 > 其它

关于this 方法中套方法中找 立即执行的问题 等问题

2015-12-02 14:56 295 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>this</title>
</head>

<script type="text/javascript" src="jquery.1.9.0.min.js"></script>
<style type="text/css">

li{ line-height:35px;
height:35px;
}

</style>
<body>

<ul>
<li>1111111111</li>
<li>2222222</li>
<li>33333333</li>

</ul>
</body>
</html>

<script type="text/javascript">

$("li").click(function(){

var oIndex=$(this).index();

a(oIndex);

})

function a(oIndex){

setTimeout(function(){
alert(oIndex)
},1000)

}
</script>


ps: 上面的这样找的时候,就会找不准。 解决办法是 获取当前 索引值 的时候, 重新定义一下。

<script type="text/javascript">

$("li").click(function(){

var oIndex=$(this).index();
var i=oIndex;//重新定义

a(i);

})

function a(i){

setTimeout(function(){
alert(i)
},1000)

}
</script>


第二种方法:

<script type="text/javascript">
$("li").click(function(){
var i=$(this).index();
//var i=oIndex;
(function(a){        //用立即执行解决
setTimeout(function(){
alert(a)
},1000)
})(i)
})
</script>


//立即执行规则

(function(a) {
setTimeout(function() {
console.log(a);
}, 1000);
})(i);


// 点击事件 调用一个方法 传递this 第一种方法

$("li").click(function(e){
a(e);
})
function a(e){
var index=    $(e.target).index();
alert(index);
}


// 点击事件 调用一个方法 传递this 第二种方法,此方法是为了。动态加载过来的数据,绑定不上点击事件 ,


在HMTL 绑定事件。

// 代码如下
<li onClick="a(this)"> 点我 </li>

// js部分
function a(othis){
var index = $(othis).index();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: