Прервать условие
Вот код, хочу сделать, чтобы при клике на ссылку - проверялся последний символ атрибута и если он совпадает с заданным условием, то загружать нужный файл. Но проблема, что в любом случае условия проверяются все и выдается только последний загруженный файл.
Может есть способ как выйти из условия? Или такое можно по-другому реализовать? $(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'); }); }); |
Странно как у тебя вообще вообще работает
$(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 |
Спасибо большое!
Буду дальше разбираться и прочту приведенные ссылки! |
Davert Tanz,
Вариант ... :write: <!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> |
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. |
еще вариант
<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> |
Poznakomlus, как вариант будет в копилке, спасибо :)
Но все же - как можно убрать эти ошибки в хроме? Погуглил - узнал что надо подключать заголовок header('Access-Control-Allow-Origin: *'); Глупый вопрос - его в js надо подключать и если да, то куда? Еще находил что-то про callback - можете дать информацию или показать как это реализовать? |
Цитата:
Ошибка у вас потому как не правильно указываете путь к файлу $('div#text').load('http://yousite.com/text/'+indx+'.txt'); |
Привет!
Цитата:
Цитата:
Установи себе Openserver или Denwer (это локальные веб-сервера,проще всего openserver) и работай через них. Такой ошибки не будет. В любом случае если ты хочешь разрабатывать что то с использованием запросов - сервер необходимось. |
Часовой пояс GMT +3, время: 16:41. |