Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2014, 00:28
Интересующийся
Отправить личное сообщение для Davert Tanz Посмотреть профиль Найти все сообщения от Davert Tanz
 
Регистрация: 20.01.2014
Сообщений: 13

Прервать условие
Вот код, хочу сделать, чтобы при клике на ссылку - проверялся последний символ атрибута и если он совпадает с заданным условием, то загружать нужный файл. Но проблема, что в любом случае условия проверяются все и выдается только последний загруженный файл.
Может есть способ как выйти из условия? Или такое можно по-другому реализовать?

$(document).ready(function() {
	$('a[href ^= #urok]').click( function () {	
		if ('a[ href $= 1]') $('div#text').load('text/1.txt');
		if ('a[ href $= 2]') $('div#text').load('text/2.txt');
		if ('a[ href $= 3]') $('div#text').load('text/3.txt');
		if ('a[ href $= 4]') $('div#text').load('text/4.txt');
		if ('a[ href $= 5]') $('div#text').load('text/5.txt');
	});
});
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2014, 11:35
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Странно как у тебя вообще вообще работает

$(document).ready(function() {
	$('a[href ^= #urok]').click( function () {	
                var slef = $(this);
		if (self.attr('href').match('2')) { $('div#text').load('text/1.txt') } //и так для всех
	});
});

Примерно так - при клике на ссылку нужно использовать this - это указатель на ссылку по которой кликнули. И теперь у этого this надо проверить последний симовол, а не у всех подряд.
.match('2') - проверяет если ли в Href этой ссылки двойка. (не обязательно последний символ). Если нужно строго последний символ проверять читай, разбирайся - http://javascript.ru/String , http://javascript.ru/RegExp
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2014, 22:22
Интересующийся
Отправить личное сообщение для Davert Tanz Посмотреть профиль Найти все сообщения от Davert Tanz
 
Регистрация: 20.01.2014
Сообщений: 13

Спасибо большое!
Буду дальше разбираться и прочту приведенные ссылки!
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2014, 22:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Davert Tanz,
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script>
$(document).ready(function () {
  var $urok = $('a[href ^= #urok]');
    $('body').on('click', $urok, function (event) {
        var indx = $urok.index(event.target) + 1;
        // $('div#text').load('text/'+indx+'.txt');
        alert('text/' + indx + '.txt')
        return false
    });
});
  </script>
</head>
<body>
<a href="#urok1">1</a>
<a href="#urok2">2</a>
<a href="#urok3">3</a>
<a href="#urok4">4</a>
<a href="#urok5">5</a>
</body>
</html>

Последний раз редактировалось рони, 20.01.2014 в 22:50.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2014, 14:26
Интересующийся
Отправить личное сообщение для Davert Tanz Посмотреть профиль Найти все сообщения от Davert Tanz
 
Регистрация: 20.01.2014
Сообщений: 13

krasovsky, сделал как у Вас написано.
Всё сработало в Мозиле. Попробовал в Хроме и ИЕ - там не прокатывает это дело.
В хроме ошибку выдает:
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
Failed to load resource: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2014, 16:20
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

еще вариант
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
      $(function () {
        $('body').on('click', 'a[href ^= #urok]', function () {
         alert('text/' + this.hash.replace("#urok","") + '.txt')
          return false
        });
      });
    </script>
  </head>
  
  <body>
    <a href="#urok1">1</a>
    <a href="#urok2">2</a>
    <a href="#urok3">3</a>
    <a href="#urok4">4</a>
    <a href="#urok5">5</a>
  </body>
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2014, 23:09
Интересующийся
Отправить личное сообщение для Davert Tanz Посмотреть профиль Найти все сообщения от Davert Tanz
 
Регистрация: 20.01.2014
Сообщений: 13

Poznakomlus, как вариант будет в копилке, спасибо

Но все же - как можно убрать эти ошибки в хроме?
Погуглил - узнал что надо подключать заголовок header('Access-Control-Allow-Origin: *');
Глупый вопрос - его в js надо подключать и если да, то куда?
Еще находил что-то про callback - можете дать информацию или показать как это реализовать?
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2014, 23:27
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Davert Tanz
Poznakomlus, как вариант будет в копилке, спасибо
Мой вариант хороший.
Ошибка у вас потому как не правильно указываете путь к файлу
$('div#text').load('http://yousite.com/text/'+indx+'.txt');
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2014, 09:06
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Привет!
Цитата:
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
Вот это - не ошибка, а предупреждение о том что конструкция типо event.returnValue более не прокатит и надо использовать event.preventDefault(). Она падает в консоль независимо от того какой код вы пишите\исполняете. Вобщем просто инфа

Цитата:
Failed to load resource: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
А вот это действительно ошибка. Дело в том что по умолчанию, браузер из безопасности запрещает запросы по протоколу file - иначе получится ад - любой сайт может скачать что угодно с твоего компа.
Установи себе Openserver или Denwer (это локальные веб-сервера,проще всего openserver) и работай через них. Такой ошибки не будет. В любом случае если ты хочешь разрабатывать что то с использованием запросов - сервер необходимось.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется условие if cooldanie Общие вопросы Javascript 12 17.01.2014 01:01
Условие выполняются после обработки функции sig jQuery 3 25.01.2013 13:06
Как правильно составить условие определяющее расширение файлов djadrenaline Общие вопросы Javascript 5 21.07.2012 23:34
Условие сравнение юрл с которого перешли с заданным niksss80 Общие вопросы Javascript 4 06.01.2012 17:43
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52