2013-02-17 81 views
2
render:function() { 
    var self = this; 
    $.ajax({url:'/db/list.json', dataType:'JSON'}).done(function (json) { 
     var html = tmpl['video-list']({videos:json}); 
     self.$el.html(html); 
    }); 

    console.log($('.video-thumb-box')); 

    $.each($('.video-thumb-box'), function(){ 
     console.log(this); 
     $(this).bind('mouseenter', function(){ 
      console.log($('.video-thumb-info', this)); 
     }); 
    }); 
} 

tmpl['video-list']({videos:json})是下划线模板,包含DIV的项目进行列表这里例如返回无法找到刚刚插入HTML由类的jQuery元素

<div class="span3"> 
    <a href="#/video/123"> 
     <div class="video-thumb-box"> 
      <img class="video-thumb-img" src="test" alt="Video tumbnail"> 
      <div class="video-thumb-info hide"> 
       <img class="pull-right" width="16" height="16" src="/img/icons/namba.png"> 
       something 
      </div> 
     </div> 
    </a> 
</div> 
<div class="span3"> 
    <a href="#/video/123"> 
     <div class="video-thumb-box"> 
      <img class="video-thumb-img" src="test" alt="Video tumbnail"> 
      <div class="video-thumb-info hide"> 
       <img class="pull-right" width="16" height="16" src="/img/icons/namba.png"> 
       something 
      </div> 
     </div> 
    </a> 
</div> 

为什么我无法找到任何$('.video-thumb-box')

+0

你需要调用'.render'再次 – 2013-02-17 16:55:42

+1

'$ .ajax'是异步。您需要在Ajax调用完成后执行循环。 (例如,将代码移到'done'中的功能块中 – WiredPrairie 2013-02-17 17:04:48

+0

这就是问题的原因,我刚将'$ .each'移到'done()'中,现在一切正常。 – 2013-02-17 17:07:55

回答

2

你的每个循环都是向后的。

$('.video-thumb-box').each(function() { 
    console.log(this); 
    $(this).bind('mouseenter', function(){ 
     console.log($('.video-thumb-info', this)); 
    }); 
}); 

这里是jQuery的.each()API

相关问题