Большое спасибо за чтение, надеюсь, у кого-то есть предложение.
Пожалуйста, посмотрите сайт http://epal-rodop.ser.sch.gr/demo/index.html. Он использует HTML-панель из Adobe/Spry для выполнения простого запроса страницы ajax.
Например, когда вы нажимаете ссылку меню (справа) ----------
он приносит страницу, которую вы запрашиваете через ajax, и заполняет контейнер div. Страница содержит панель вкладок SPRY (javascript) и работает нормально.
Я пытаюсь обнаружить событие click на вкладке вкладки (нажатие на вкладке приведет к появлению окна предупреждения) (нажмите ссылку TEST)
У меня есть следующий код (JQuery и SPRY):
$(document).ready(function(){
$(document).on("click","#TabbedPanels1",function (event){
alert("in");
});
});
и на странице, которая проходит через ajax в div, я имею следующий код
<div id="TabbedPanels1" class="TabbedPanels" style="margin-left:20px; ">
<ul class="TabbedPanelsTabGroup" >
<li class="TabbedPanelsTab" tabindex="0">Test</li>
<li class="TabbedPanelsTab" tabindex="0">test2</li>
</ul>
<div class="TabbedPanelsContentGroup" style="height: auto" >
<div class="TabbedPanelsContent">
<p style="font-size:13px; text-align:justify">Data</p>
</div>
<div class="TabbedPanelsContent">
<p><span style="font-size:13px; text-align:justify">Data </span></p>
</div>
</div>
</div>
.on()
работает, если вы нажмете NEXT на пространство с .on()
и в поле BETWEEN на пространстве панелей (расстояние 2px!), Но не на заголовок панели, хотя селектор содержит ul и li, где существуют фактические названия панелей. Я попробовал несколько комбинаций (давая идентификаторы li, ul и т.д., Но никто не работает).
Большое спасибо за любые идеи, которые могут помочь решить проблему.
Ваш скрипт работает правильно. Проблема в том, что, как написано, предупреждение будет запущено только в том случае, если вы нажмете в фактическом div. Попробуйте, вы увидите, что он работает. Нажмите в белом пространстве рядом с вкладками, и вы увидите предупреждение.
То, что вам действительно нужно сделать, - установить функцию щелчка для .TabbedPanelsTab
класса .TabbedPanelsTab
, так как это срабатывает, когда пользователь нажимает на фактические вкладки.
$(document).on("click",".TabbedPanelsTab",function (event){
alert("in");
});
Кроме того, я бы предложил использовать виджет tabs
который уже существует в пользовательском интерфейсе jquery, вместо того, чтобы сворачивать свой собственный.
Чтобы расширить ответ scott.korin (который действителен), вы также можете улучшить эффективность этого скрипта (при условии, что ваш элемент # TabbedPanels1 всегда присутствует:
$('#TabbedPanels1').on("click",".TabbedPanelsTab",function (event){
alert("in");
});
return this.cancelEvent(e);