中関村ウェブサイト製品パラメータページのパラメータ誤り訂正の作成


今日突然、やっているサイトに中関村のようなパラメータ誤り訂正機能を追加したいと思います.効果は下図のようです.
见たところとても简単なようですが、しかし自分はやはり1午后に晩の2时间をプラスしたいと思って、しかし自分が作った时もとても简単なことを感じて、実はこのようなwebページの小さい特効は考えを通すだけでとても简単で、ほほほ、ただ考え、アルゴリズムとは言えなくて、アルゴリズムが高すぎて、MEも分かりません.
この効果を見ると、そのtdセルにmouseoverイベントを追加し、マウスを移動するとその「パラメータ誤り訂正」のHTMLラベルが現れることにほかならない.
firebugで中関村のページを表示すると、そのパラメータを誤り訂正することができます.つまり、spanラベルにimgと文字が含まれていて、右にフローティングして、自然にtdの右側に寄りかかります.
マウスがtdセルを移動した後も、そのパラメータ誤り訂正のラベルが表示され、マウスが別のtdセルに移動した場合にのみ、元のパラメータ誤り訂正のラベルが消え、tdのmouseoutイベントは使用できません.
私の考えはjqueryのremoveメソッドを利用して、mouseoverイベントに入るたびに、まず現在のページのパラメータ誤り訂正のラベルを削除してから、現在のtdセルにパラメータ誤り訂正のHTMLラベルを付けることです.
くだらないことを言いすぎて、次の正しいコードを見てください.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>    </title>
    <style type="text/css">
        .param_td
        {
            line-height: 25px;
        }
        .param_td a
        {
            font-size: 12px;
        }
        .param_td a:link, .param_td a:visited
        {
            text-decoration: none;
            color: #0368A8;
        }
        .param_td a:hover
        {
            text-decoration: underline;
            color: #FF6600;
        }
    </style>

    <script src="js/jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
        function show(obj_td) {
            /*
                td    ,            HTML    ,
                 HTML          
            */
            $("#param_jiucuo").remove();
            var td = $(obj_td);
            var tmp = td.text().replace("    ", "");
            var html_jiucuo = "<span bgcolor='#ffffff' style='float: right;' id='param_jiucuo'>" +
                                        "<img src='http://icon.zol.com.cn/detail0802/e2.gif'/>" +
                                        "<a href='javascript:alert(\"" + tmp + "\")'>    </a>" +
                                        "</span>";
            td.html(html_jiucuo + tmp);
        }
    </script>

</head>
<body>
    <table width="770" cellspacing="1" cellpadding="0" border="0" bgcolor="#c5d7ed">
        <tbody>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td" onmousemove="show(this)">
                        ,3G  
                </td>
            </tr>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td" onmousemove="show(this)">
                    GSM、WCDMA
                </td>
            </tr>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td" onmousemove="show(this)">
                    GSM 900/1800/1900MHz
                </td>
            </tr>
        </tbody>
    </table>
</body>
</html>

以上のコードは私がテストに成功したコードで、最初はtdラベルにonmousemoveパラメータを追加したくなかったので、jqueryを利用して直接$(function(){})の中で最初のtdラベルにmousemoveメソッドを追加したいと思っていましたが、最後にテストに成功しませんでした.以下はエラーのコードです.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>    -      </title>
    <style type="text/css">
        .param_td
        {
            line-height: 25px;
        }
        .param_td a
        {
            font-size: 12px;
        }
        .param_td a:link, .param_td a:visited
        {
            text-decoration: none;
            color: #0368A8;
        }
        .param_td a:hover
        {
            text-decoration: underline;
            color: #FF6600;
        }
    </style>

    <script src="js/jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(function() {
        /*
              JS       , td  mouseover        td  a    
               ,       
        */
            $(".param_td").mouseover(function() {
                var td = $(this);
                $("#param_jiucuo").remove();
                var tmp = $.trim(td.text().replace("    ", ""));
                var html_jiucuo = "<span bgcolor='#ffffff' style='float: right;' id='param_jiucuo'>" +
                                        "<img src='http://icon.zol.com.cn/detail0802/e2.gif'/>" +
                                        "<a href='javascript:alert(\"" + tmp + "\")'>    </a>" +
                                        "</span>";
                td.html(html_jiucuo + tmp);
            });
        })
    </script>

</head>
<body>
    <table width="770" cellspacing="1" cellpadding="0" border="0" bgcolor="#c5d7ed">
        <tbody>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td">
                        ,3G  
                </td>
            </tr>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td">
                    GSM、WCDMA
                </td>
            </tr>
            <tr>
                <td width="100" bgcolor="#ffffff" valign="middle" align="left">
                    <strong>    </strong>
                </td>
                <td width="450" bgcolor="#ffffff" class="param_td">
                    GSM 900/1800/1900MHz
                </td>
            </tr>
        </tbody>
    </table>
</body>
</html>

以上のコードの誤りはどこでN久を考えさせたのか、最後に基本的に理解すると、JSのイベントトリガはバブルメカニズムであるため、多分私がJSコードの中でtdタグにmouseoverイベントを加えたため、表示されたときにtd内のaタグに移動したときもtdのmouseoverイベントをトリガしたので、エラーが発生します.以前のmouseoverイベントにHTMLタグを付けたものでは問題ないでしょう.
ソースのダウンロード:http://niunan.net/download/jiucuo.rar