Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
jquery - как отключить аякс на ссылке? |

02.08.2008, 18:36
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
jquery - как отключить аякс на ссылке?
повесил на все ссылки аякс
PHP код:
$(document).ready(function(){
$("a").click(function(){
$('#data').load(this.href);
return false;
});
});
хочу сделать так, чтобы можно было отключать его для некоторых ссылок.
не лучший способ- добавлять к ним атрибут ajax=no,
т.к. это не валид хтмл
тем не менее не получается и это.
Здесь http://docs.jquery.com/Selectors
селекторы только для выделения элементов у которых атрибут не равен указанному свойству.
это не подходит. не могу же я везде приписывать атрибут ajax =\
помогите решить проблему
|
|
|

03.08.2008, 03:31
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Сообщение от Дикс
повесил на все ссылки аякс
PHP код:
$(document).ready(function(){
$("a").click(function(){
$('#data').load(this.href);
return false;
});
});
хочу сделать так, чтобы можно было отключать его для некоторых ссылок.
не лучший способ- добавлять к ним атрибут ajax=no,
т.к. это не валид хтмл
тем не менее не получается и это.
Здесь http://docs.jquery.com/Selectors
селекторы только для выделения элементов у которых атрибут не равен указанному свойству.
это не подходит. не могу же я везде приписывать атрибут ajax =\
помогите решить проблему
Самый простой вариант, это присваивать ссылкам ( те что не должны обрабатываться аяксом) определенный класс, благо их можно даже несколько прицепить
А в самой функц ии обработки онклика, проверять this(элемент вызвавший данное событие) не являеться ли он принадлежащем классу, при котором НЕ нужно обрабатываь событие
Последний раз редактировалось Naydav; 03.08.2008 в 03:34..
|
|
|

03.08.2008, 09:53
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
if($(this).css(class) != 'noAjax')
if(this.css(class) != 'noAjax')
if(this.attr(class) != 'noAjax')
if(this.attr("class") != 'noAjax')
не работает =\
может потому что у большинства ссылок вообще класса нет?
попробовал сделать так:
if(this.title != 'Внешняя ссылка ->')
$('#data').load(this.href);
ссылка ваще не работает
и ещё у меня почему-то многократно вызывается click(function())
после того как я дважды перейду по таким ссылкам
т.е. я ставлю алерт(click()) в вызов click(), щёлкаю по одной ссылке и алерт вылазит один раз.
потом щёлкаю по другой.
потом снова по первой и алерт вылазит до шести раз.
причем он то пишет содержимое функции клик - тело какой-то функции, наверное из джиквери, то пустую строку =\
Последний раз редактировалось Дикс; 03.08.2008 в 10:01..
|
|
|

03.08.2008, 13:14
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Код:
<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(){
//$('#data').load(this.href);
if( $(this).attr("class")!="noajax" )
alert("Ajax");
return false;
});
});
</script>
<a href="#">Событие сработает</a> |
<a href="#" class="noajax">Событие НЕ сработает</a>
Если хочешь через title, то попробуй не this.attr("title"), а $(this).attr("title")
Но через классы удобнее, причем классов можно и несколько назначать (в таком случае нужно несколько усложнить условие проверки)
Последний раз редактировалось Naydav; 03.08.2008 в 13:23..
|
|
|

03.08.2008, 16:29
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
я по всякому пробовал
сделай рабочий пример? 
|
|
|

03.08.2008, 19:52
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Сообщение от Дикс
я по всякому пробовал
сделай рабочий пример? 
Так вверху РАБОЧИЙ пример
<script type="text/javascript" src="/javascripts/jquery.js"></script>
- не забудь указать свой путь
Напиши в личку, если что не получается
Последний раз редактировалось Naydav; 03.08.2008 в 19:55..
|
|
|

03.08.2008, 21:45
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
пример нерабочий 
проверял в опере 9.2
первая ссылка - страница дёргаеццо в перезагрузке,
вторая ссылка - ваще ничо не происходит
если изменить вторую ссылку на #2 - урл меняется на #2 и всё
сорри, разбираться некогда - ща спать завалюсь
|
|
|

03.08.2008, 23:09
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Сообщение от Дикс
пример нерабочий 
проверял в опере 9.2
первая ссылка - страница дёргаеццо в перезагрузке,
вторая ссылка - ваще ничо не происходит
если изменить вторую ссылку на #2 - урл меняется на #2 и всё
сорри, разбираться некогда - ща спать завалюсь
СКРИПТ РАБОЧИЙ!
Отестировал еще раз во всех браузерах (в том числе и опера 9.50) - все отлично работает, я выложу в инет, сам посмотришь
___________________
http://edukation.com.ua/my.php
не веришь мне, дай ссылку другим
код тот же, в сурсе - посмотришь
---- вот код вообще уже и c подгрузкой
<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(){
if( $(this).attr("class")!="noajax" ){
alert("Аякс");
$('#data').load($(this).attr("href"));
}
else {
alert("Класс noajax, ничего не происходит");
}
return false;
});
});
</script>
<a href="/test.php">Аяксом загружаем страницу</a> | <a href="#" class="noajax">Событие НЕ сработает</a>
<div id="data"></div>
Последний раз редактировалось Naydav; 04.08.2008 в 12:48..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|