2013-02-19 56 views
0

代码示例:jQuery的悬停事件不触发如下

(function (window, document) { 
$('.rating_title_container').parents('.item_row_def').hover(function() { 
      setTimeout(function() { 
       system.console('Worked'); 
      }, 1000); 
     }); 
})(window, document); 

我是相当新的JS,jQuery的。任何人都可以解释我在这里失踪了吗?在 发布代码http://jsfiddle.net/p7gBy/5/

HTML

<table> 
    <thead> 
     <tr> 
     <th class="item_row_def" onclick="sort(3);"> 
      <table class="col-header"> 
      <tbody> 
       <tr> 
       <td> 
        <h2 class="header_title rating_title_container">Rating</h2> 
       </td> 
       </tr> 
      </tbody> 
      </table> 
     </th> 
     </tr> 
    </thead> 
    </table> 
+1

此代码运行时,马上你叫吧,如果是在头文件的剩余部分还没有准备好,所以也找不到任何元素 – dmi3y 2013-02-19 04:31:27

+0

你可以把它放在一个小提琴? – arjuncc 2013-02-19 04:31:52

+0

你可以发布你的HTML吗? – 2013-02-19 04:32:01

回答

0
它假设调用代码,当文档准备好

尝试以下:

jQuery(function (window, document) { 
$('.rating_title_container').parents('.item_row_def').hover(function() { 
     setTimeout(function() { 
      system.console('Worked'); 
     }, 1000); 
    }); 
}); 

,同时您已经超出});末,其抛出错误

0

你需要在你的事件处理程序中绑定一个文档,就像这样(替换代码上面这个问题,看看):

$(document).ready(function(){ 
    $('.rating_title_container').parents('.item_row_def').hover(function() { 
     setTimeout(function() { 
      system.console('Worked'); 
     }, 1000); 
    }); 
}); 
0

试试这个代码:

(function (window, document) { 
$('.rating_title_container').parents('.item_row_def').hover(function() { 
      setTimeout(function() { 
       alert('Worked'); 
      }, 1000); 
     }); 

})(window, document); 

检查小提琴http://jsfiddle.net/AXepU/

0

你必须附上该功能doc ready然后一切都会很好地工作:

$(function(){ // <----------------------------try enclosing within this from here 
    (function (window, document) { 
     $('.rating_title_container').parents('.item_row_def').hover(function() { 
     setTimeout(function() { 
      alert('Worked'); 
     }, 1000); 
     }); 
    })(window, document); 
}); //<---------------------------------------- to here. 

大部分事件应写在document ready手柄内河

这样的:

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

这:

$(function() { 
    // Handler for .ready() called. 
}); 

相同。第二个是doc ready处理程序的简短版本。

Read More about .ready()处理

+0

任何想法,为什么这是行不通的? http://jsfiddle.net/p7gBy/5/ – vasa 2013-02-19 05:35:45

+0

同样的事情,你可以'从左上方面板中选择jQuery或'用doc-ready'在dom中放置一个引用。 – Jai 2013-02-19 05:40:08

+0

检查:http:// jsfiddle.net/p7gBy/7/找到侧边栏的左上角,你必须选择'ready function'和'framework'。 – Jai 2013-02-19 05:41:31