У меня есть страница обзора, которая показывает данные в таблице.Всплывающее окно открывается, когда пользователь нажимает на строку.Но всплывающее окно загружается снова и снова до тех пор, пока оно не зависнет.
Код обзора:
<tbody>
<tr>
<td>
<a href="/pop-up/details/1/" onClick="MyWindow=window.open('/details_screen/1/','window1','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">details screen for 1</a>
</td>
</tr>
<tr>
<td>
<a href="/pop-up/details/2/" onClick="MyWindow=window.open('/details_screen/2/','window2','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">details screen for 2</a>
</td>
</tr>
</tbody>
javascript, который делает строки активируемыми:
function make_rows_clickable(table){
$(table).find('tbody tr').each(function() {
$(this).hover(function(){
//rollover
$(this).addClass('hover');
},
function() {
//rolloff
$(this).removeClass('hover');
}).click(function() {
$(this).find('a').click();
});
});
}
РЕШЕНИЕ
Как указано в ответе на комментарий, щелчок привязки запускает событие tr click и создает цикл infinte.Я решил это, удалив событие onClick и добавив атрибуты.Откроется событие tr click, затем всплывающее окно.
<td>
<a href="/pop-up/details/2/"element_id="2" pop_w="800" pop_h="600">details screen for 2</a>
</td>
Js:
$(table).find('tbody tr').hover(function(){
//rollover
$(this).addClass('hover');
},
function() {
//rolloff
$(this).removeClass('hover');
}).click(function(e) {
e.stopPropagation();
var anchor = $(this).find('a');
var el_id = $(anchor).attr('element_id');
var pop_w = $(anchor).attr('pop_w');
var pop_h = $(anchor).attr('pop_h');
MyWindow=window.open('/details/screen/' + el_id + '/', el_id, 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=' + pop_w + ',height=' + pop_h);
});