私は地図を描こうとしていますが、村のオブジェクトのリストがあります。そして、マップのビュー ウィンドウを作成し、各座標チェックをループして、データベースからそこに村が存在するかどうかを確認します。もしそうなら、私は村を描きます。私が本当に欲しいのは、各村にカーソルを合わせたときに jquery ホバー メニューを表示できるようにすることです。
現時点では、村にカーソルを合わせると、すべての村のすべてのホバー メニューが表示されます。もちろん、それらはすべて同じ画像 ID とホバー メニュー ID を共有しているためです。しかし、それらを一意の ID に変更すると、すべての村のホバー ボックスを作成するにはどうすればよいでしょうか?
これは現時点での私のコードです(ループしてリテラルコントロールに書き込んでいます)
Map.aspx.cs
MapLiteral.Text = "";
MapLiteral.Text += "<table cellpadding=\"0\" cellspacing=\"0\">";
for (int i = minx; i <= maxx; i++)
{
MapLiteral.Text += "<tr>";
for (int j = miny; j <= maxy; j++)
{
MapLiteral.Text += "<td width\"50px\" height=\"50px\" style=\"border: solid 1px #2d5c25;\">";
if (Objects.Village.VillageExists(i, j))
{
Objects.Village village = new Objects.Village();
village = Objects.Village.GetVillage(i, j);
MapLiteral.Text += "<div class=\"village\"><img src=\"/Images/Map/Village1.gif\" /></div>";
MapLiteral.Text += "<div class=\"villagehover\" id=\"villagehover\">test</div>";
}
else
{
MapLiteral.Text += "<img src=\"/Images/Map/Grass.gif\" />";
}
MapLiteral.Text += "</td>";
}
MapLiteral.Text += "</tr>";
}
MapLiteral.Text += "</table>";
Map.aspx
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(".villagehover").hide()
$(".village").hover(
function () {
$('.villagehover').stop().fadeTo("slow", 0.33);
},
function () {
$('.villagehover').stop().fadeOut("slow");
}
);
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<center>
<h2>
Map (<asp:Label ID="XTitleLabel" runat="server" />,
<asp:Label ID="YTitleLabel" runat="server" />)
</h2>
<asp:Literal ID="MapLiteral" runat="server"></asp:Literal>
どんな助けでも大歓迎です!