中関村ウェブサイト製品パラメータページのパラメータ誤り訂正の作成
今日突然、やっているサイトに中関村のようなパラメータ誤り訂正機能を追加したいと思います.効果は下図のようです.
见たところとても简単なようですが、しかし自分はやはり1午后に晩の2时间をプラスしたいと思って、しかし自分が作った时もとても简単なことを感じて、実はこのようなwebページの小さい特効は考えを通すだけでとても简単で、ほほほ、ただ考え、アルゴリズムとは言えなくて、アルゴリズムが高すぎて、MEも分かりません.
この効果を見ると、そのtdセルにmouseoverイベントを追加し、マウスを移動するとその「パラメータ誤り訂正」のHTMLラベルが現れることにほかならない.
firebugで中関村のページを表示すると、そのパラメータを誤り訂正することができます.つまり、spanラベルにimgと文字が含まれていて、右にフローティングして、自然にtdの右側に寄りかかります.
マウスがtdセルを移動した後も、そのパラメータ誤り訂正のラベルが表示され、マウスが別のtdセルに移動した場合にのみ、元のパラメータ誤り訂正のラベルが消え、tdのmouseoutイベントは使用できません.
私の考えはjqueryのremoveメソッドを利用して、mouseoverイベントに入るたびに、まず現在のページのパラメータ誤り訂正のラベルを削除してから、現在のtdセルにパラメータ誤り訂正のHTMLラベルを付けることです.
くだらないことを言いすぎて、次の正しいコードを見てください.
以上のコードは私がテストに成功したコードで、最初はtdラベルにonmousemoveパラメータを追加したくなかったので、jqueryを利用して直接$(function(){})の中で最初のtdラベルにmousemoveメソッドを追加したいと思っていましたが、最後にテストに成功しませんでした.以下はエラーのコードです.
以上のコードの誤りはどこでN久を考えさせたのか、最後に基本的に理解すると、JSのイベントトリガはバブルメカニズムであるため、多分私がJSコードの中でtdタグにmouseoverイベントを加えたため、表示されたときにtd内のaタグに移動したときもtdのmouseoverイベントをトリガしたので、エラーが発生します.以前のmouseoverイベントにHTMLタグを付けたものでは問題ないでしょう.
ソースのダウンロード:http://niunan.net/download/jiucuo.rar
见たところとても简単なようですが、しかし自分はやはり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