#php #javascript
#php #javascript
Вопрос:
В настоящее время у меня есть сайт и javascript, запущенный в заголовке
<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('a').click(function(e){
e.preventDefault();
document.location.href='shows.php?ref=' this.href;
return false;
});
});
</script>
Он изменяет все теги < a href > . Теперь я добавил php include, чтобы включить панель навигации. Проблема в том, что javascript также изменяет навигационные ссылки, что приводит к их сбою.
Есть ли альтернатива a в href, или я могу противодействовать javascript на странице навигации, или я могу исключить страницу навигации в моем текущем javascript?
Спасибо
Ответ №1:
Используйте правильный селектор, чтобы сузить выбор. Предполагая, что реальное содержимое находится в div
с идентификатором content
, используйте
$('#content a').click(function(){...});
Вы не опубликовали свою HTML-структуру, но это должно дать вам правильное представление. При необходимости добавьте идентификатор.
Комментарии:
1. Это великолепно! Дает мне намного больше контроля и решает пару других проблем, чтобы! Могу ли я включить несколько содержимого? $(‘#content, #content1, #content2 a’).click(функция(){…}); Это сработает? Спасибо 🙂
2. @Michael: У вас может быть несколько идентификаторов, но каждый идентификатор должен быть уникальным. Если вы хотите обратиться к нескольким элементам с одинаковым именем, используйте классы.
3. @Michael: И элемент может иметь только один идентификатор.
Ответ №2:
Учитывая, что вы можете выбрать навигацию с помощью селектора, например
<div id="nav"><!-- your links --></div>
Вы можете выбрать все ссылки, кроме тех, которые указаны в навигации с помощью
$("a:not(#nav)").click(/* your function */);
Комментарии:
1. Извините, кажется, я действительно был неправ. Это читается как: Выберите все <a /> элементы, кроме <a id=»nav»/> элементов.
Ответ №3:
вы могли бы отменить привязку обработчика события click для элементов привязки на панели навигации.
Допустим, что ваш контейнер навигационной панели идентифицируется идентификатором =»nav_bar_id». Затем вы могли бы сделать что-то вроде :
$('#nav_bar_id a').unbind('click');
это удалит обработчик onclick из желаемых <a>
‘s без изменения предыдущего скрипта
Ответ №4:
Если вы хотите исключить ваши навигационные ссылки с таким поведением (вместо того, чтобы привязывать поведение к некоторым ссылкам), присвойте им класс, а затем в вашем javascript:
$('a').not('.nav_class').click(function(e){...});