Хорошо, я в тупике.У меня есть элемент управления, который состоит из таблицы.Я разрешаю пользователю щелкнуть гиперссылку в нижнем ряду, чтобы перейти непосредственно к связанному представлению.
С другой стороны, пользователь может щелкнуть в любом месте внутри таблицы и сделать выбор.Этот выбор активирует панель инструментов, которая позволяет пользователю выполнять некоторые задачи с выбранным элементом.Если пользователь снова щелкает выбранный элемент, я хочу программно щелкнуть гиперссылкуНо когда я запускаю jQuery для программного щелчка по гиперссылке, я получаю ошибку «Out of stack stack space».Я полностью осознаю, что событие click вызывается рекурсивно, но я не знаю, как его предотвратить!Вот мой код ...
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style>
.mouseOver, .mouseOut, .selected
{
width: 120px;
height: 120px;
text-align: center;
vertical-align: top;
display: inline-block;
margin: 5px;
cursor: pointer;
}
.mouseOver
{
border: solid thin #99defd;
background: #e9f8fe;
}
.mouseOut
{
border: solid thin White;
}
.selected
{
border: solid thin #e0a403;
background: #f8f4de;
}
</style>
<script>
(function($) {
$(document).ready(function() {
var $items = $('.mouseOut');
$items.mouseenter(function() {
if ($(this).attr('class') != 'selected')
$(this).attr('class', 'mouseOver');
});
$items.mouseleave(function() {
if ($(this).attr('class') != 'selected')
$(this).attr('class', 'mouseOut');
});
$items.click(function() {
if ($(this).attr('class') == 'selected') {
$(this).find('a').click();
}
else {
$('.selected').attr('class', 'mouseOut');
$(this).attr('class', 'selected');
}
});
});
})(jQuery);
</script>
</head>
<body runat="server">
<form id="form1" runat="server">
<table cellpadding="5" class="mouseOut">
<tr>
<td>
user module thumbnail...
</td>
</tr>
<tr>
<td>
<a id="A1" href="javascript:__doPostBack('ControlPanelHost1$cphCtrl0$lvCollectionView$ctrl0$lnkBtn','')">Users</a>
</td>
</tr>
</table>
<table cellpadding="5" class="mouseOut">
<tr>
<td>
stats module thumbnail...
</td>
</tr>
<tr>
<td>
<a id="A2" href="javascript:__doPostBack('ControlPanelHost1$cphCtrl0$lvCollectionView$ctrl1$lnkBtn','')">Stats</a>
</td>
</tr>
</table>
</form>
</body>
Эта урезанная версия полностью продемонстрирует проблему.Спасибо всем, кто может помочь!