为什么我的JQuery脚本不起作用?

时间:2013-04-13 06:18:17

标签: javascript jquery html css

我不确定为什么这不起作用,我在网上阅读的所有文章都认为这应该可行。好吧,这是我的HTML代码:()

<!doctype html>
<html>
<head>
<script src = "http://code.jquery.com/jquery-latest.min.js" type = "text/javascript"></script>
<script src = "showmotto.js" type = "text/javascript"> </script>
</head>

<body>

<table>

<?php

    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);  
    $sth = $pdo->query('SELECT * from users');
    $sth->setFetchMode(PDO::FETCH_ASSOC);   

    while( $row = $sth->fetch() )
    {
        echo "<tr><td class = \"users\" data-motto = '{$row['motto']}' >{$row['username']}</td></tr>";      
    }

    $pdo = null;

?>

</table>

</body>

</html>

这是show-motto.js。我的目标是当用户使用data-motto中的信息鼠标悬停在桌面上时提醒用户。但是我还没有那么远,因为由于某些原因,鼠标悬停事件无法正常工作

$('td.users').live('mouseover', function()
    alert(0);
});

我也试过$('。users'),但它也不起作用。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

在最新版本的jQuery中,live已被删除。

你可以做的是:

$(document).on('mouseover', 'td.users', function() {
    alert(0);
});

或者,因为元素都是最初创建的:

$(function(){
   // put all your code inside this block
   $('td.users').on('mouseover', function() {
      alert(0);
   });
});

另一个解决方案,类似于第二个解决方案,是将所有JS代码放在位于script末尾的body元素中(位于表之后)。

您还添加了缺少的左括号。这个问题你应该检测到浏览器的using the console,其中显示了所有错误。

答案 1 :(得分:1)

因为jquery的最新版本实时函数已弃用 ...而不是使用

$(function(){
    $('td.users').on('mouseover', function()
        alert(0);
    });
})

$(document).ready(function(){
    $('td.users').on('mouseover', function()
        alert(0);
    });
})