我不确定为什么这不起作用,我在网上阅读的所有文章都认为这应该可行。好吧,这是我的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'),但它也不起作用。
我做错了什么?
答案 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);
});
})