0

なぜこれが機能しないのかわかりません。オンラインで読んだすべての記事では、これが機能するはずだと思われます。さて、これが私の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 があります。私の目標は、データモットーの情報を使用してテーブルにマウスオーバーしたときにユーザーに警告することです。しかし、何らかの理由でマウスオーバーイベントが機能しないため、まだそこまで進んでいません

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

$('.users') も試しましたが、どちらも機能しません。

私は何を間違っていますか?

4

2 に答える 2

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);
   });
});

もう 1 つの解決策は、2 番目の解決策と同様に、すべての JS コードをの最後(テーブルの後)にあるscript要素に配置することです。body

欠落している開き括弧も追加します。この問題は、すべてのエラーが表示されるブラウザのコンソールを使用して検出する必要があります。

于 2013-04-13T06:19:44.597 に答える
1

live 関数は最近のバージョンの jquery から非推奨になっているため...代わりにon likeを使用します

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

また

$(document).ready(function(){
    $('td.users').on('mouseover', function()
        alert(0);
    });
})
于 2013-04-13T06:21:40.603 に答える