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

<!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();
}

 

posted @ 2015-12-02 14:56  328201736  阅读(233)  评论(0编辑  收藏  举报