jQuery mouseenter()没有触发

时间:2013-04-29 18:44:33

标签: javascript jquery mouseenter

所以我有这个简单的HTML

<div class="song">
    <img src="http://o.scdn.co/300/40e3ec60c92513f724f47ce71baad1e496627107">
</div>

这个简单的jQuery

$(".song").on( "mouseenter", function() {
    $(this).css( "background-color", "red" );
    alert('bla');
});

事件不会发生。

虽然

$(".naujienuKategorija").on( "mouseenter", function() {
    $(this).css( "background-color", "red" );
});

上工作得很好
<p class="naujienuKategorija">Apklausa</p>

哪一页在同一页上。

.song有以下css

.song {
    padding-bottom: 12px;
    margin-bottom: 15px;
    border-bottom: 1px solid #E0E0E0;
    overflow: hidden;
}

我显然错过了一些东西......很明显。

1 个答案:

答案 0 :(得分:2)

为了将事件绑定到元素,必须准备好并找到该元素。执行此操作的一般方法是将事件绑定放在$(document).ready中,因为它可以确保访问页面上的原始元素。所以使用这个:

$(document).ready(function () {
    $(".song").on( "mouseenter", function() {
        $(this).css( "background-color", "red" );
        alert('bla');
    });
});

另一种选择是在</body>之前或之前的任何时间 目标元素后,将您的事件绑定放在页面上。例如:

<div class="song"></div>
<div class="song></div>

<script type="text/javascript">
    $(".song").on("mouseenter", function () {

    });
</script>

它可能一直在使用.naujienuKategorija元素,因为您使用的是上面的第二种方法,但没有使用.song元素。