У меня есть изображение в datalist
<asp:DataList ID="dlHotels" runat="server" >
<ItemTemplate>
<img id="opener" class="btn12" alt="" src="images/view.jpg" />
</ItemTemplate>
</asp:DataList>
когда я нажимаю изображение jquery, вызывается
$(function () {
$("#dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$("#opener").click(function () {
$("#dialog").dialog("open");
});
});
теперь в этом jquery появляется всплывающее окно, которое является div и вне datalist
<div id="dialog" title="Choose Your Dates">
</div>
теперь, что я хочу, когда div появится, он должен знать, через какое изображение он называется.
Хорошо, вы не можете использовать универсальный идентификатор, потому что, когда бэкенд визуализирует html-код, имя id вычисляется с помощью индексатора, для того, чтобы не иметь один и тот же идентификатор идентификатора несколько раз.
В этом случае вы можете попробовать следующее:
<asp:DataList ID="dlHotels" runat="server" >
<ItemTemplate>
<img id="opener" class="btn12" alt="" src="images/view.jpg" onclick="openMe(this)" />
</ItemTemplate>
</asp:DataList>
Теперь измените свой код javascript следующим образом:
$(function () {
$("#dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
// $("#opener").click(function () {
//
// $("#dialog").dialog("open");
// });
});
function openMe (p_whoIs)
{
//for debug use, comment the next line in procduction environment
alert("You call me with : " + p_whoIs);
var $img = $(p_whoIs).clone();
$("#dialog").append($img);
$("#dialog").dialog("open");
}