PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): [1] 2 3 »

> Найдено сообщений: 43
surrealistic pillow Отправлено: 01 Декабря, 2015 - 14:54:58 • Тема: Как исключить дочерние элементы в jquery? • Форум: JavaScript & VBScript

Ответов: 0
Просмотров: 1210
Смысл такой. Есть блок, в который вложен еще один блок, с контентом. Родительский блок пр ширине равен 100%, в то время как блок с контентом уже, находится по центру. Как сделать, чтобы по клику на вот эти поля, которые получаются по краям родительского блока, пользователя перенаправляло на определенную страницу? При этом при клике по блоку с контентом перенаправления происходить не должно.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id='wrap0' style='width:100%;height:100%;background-color:green;'>
  3.         <div id='container' style='width:70%;background-color:#fff;height:100%;margin:auto;'>
  4.                 <a href='ya.ru'>TEST LINK</a>
  5.         </div>
  6. </div>
  7.  


Вот такой код, делает перенаправление, однако при нажатии на блок с контентом перенаправления быть не должно

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type='text/javascript' src='http://code.jquery.com/jquery-2.1.4.min.js'></script>
  3. <script type='text/javascript'>
  4. $(function(){
  5.         $('#wrap0').click(function(){
  6.                 window.location.href='https://google.com';
  7.         });
  8. });
  9. </script>
  10.  

(Добавление)
Нашел решение. Но это решение не работает как надо, тк ссылки внутри блока с контентом перестают работать
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type='text/javascript'>
  3. $(function(){
  4.         $('#wrap0').click(function(){
  5.                 window.location.href='https://google.com';
  6.         }).children().click(function(e) {
  7.                 return false;
  8.         });
  9. });
  10. </script>
  11.  

(Добавление)
РАБОТАЮЩЕЕ РЕШЕНИЕ:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type='text/javascript'>
  3. $(function(){
  4.         $('#wrap0').click(function(e){
  5.                 if(e.target == this){
  6.                         window.location.href='https://google.com';
  7.                 }
  8.         });
  9. });
  10. </script>
  11.  
surrealistic pillow Отправлено: 05 Сентября, 2015 - 22:09:39 • Тема: Как поменять атрибут фрейма по клику на элемент внутри него • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 751
Собственно, нужно поменять высоту фрейма
index.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <iframe height='400' src='1.html'>
  3. </iframe>
  4.  

1.html
CODE (html):
скопировать код в буфер обмена
  1. <a class='link' href='javascript:void(0);'>LINK</a>

Этот код пытался добавить и в index.html и в 1.html, не срабатывает.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(function(){
  3.         $('.link').click(function(){
  4.                 $(this).closest('iframe').attr('height','600');
  5.         });
  6. });
  7.  


Это вообще реально? Все файлы в одной лежат папке , то есть фрейм не кроссдоменный
surrealistic pillow Отправлено: 04 Сентября, 2015 - 13:48:53 • Тема: Не получается передать на сервер JS массив с помощью ajax • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 862
DelphinPRO,Deonis спасибо за разъяснения)) все работает
surrealistic pillow Отправлено: 04 Сентября, 2015 - 11:51:19 • Тема: Не получается передать на сервер JS массив с помощью ajax • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 862
У меня вопрос, на который я при всем старании, не нашел ответа.

На странице имеется множество ссылок с классом 'link'. Я получаю массив этих ссылок, и пытаюсь передать на сервер его, но не выходит. Огорчение
CODE (javascript):
скопировать код в буфер обмена
  1. $(function(){
  2.         var array = [];
  3.  
  4.         $('a.link').each(function(){
  5.                 array[array.length] = $(this).attr('href');
  6.         });  
  7.        
  8.         var data = "array = " + JSON.stringify( array );
  9.         alert(data);//выводит на экран что-то вроде 'array = ["http://mysite.ru/1.html","http://mysite.ru/2.html",...]'        
  10.        
  11.         $.ajax({
  12.                 url:     'url.php', //Адрес подгружаемой страницы
  13.                 type:     "POST", //Тип запроса
  14.                 data:  data,                      
  15.                 success: function(response) { //Если все нормально
  16.                         alert(response);
  17.                 }                      
  18.         });
  19. });
  20.  

в принимающем скрипте вот что:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = json_decode( $_POST['array'], true );
  3. var_dump($array);//просто чтобы понять приходит что-то или нет
  4.  


В результате выполнения скрипта вывода переданного массива на экран не происходит. То есть, запрос вообще не возвращает ничего. Где косяк?

Пробовал преобразовывать массив ссылок в обьект, потом обьект в JSON - тоже безрезультатно
CODE (javascript):
скопировать код в буфер обмена
  1. function toObject(array) {
  2.         var res = {};
  3.         for (var i = 0; i < array.length; ++i)
  4.                 if (array[i] !== undefined) res[i] = array[i];
  5.         return res;
  6.         }
  7. var obj = toObject(array);
  8. var data = $.toJSON(obj);
surrealistic pillow Отправлено: 22 Мая, 2015 - 11:33:49 • Тема: Получить высоту элемента, которая меняется динамически в зависимости от его содержания • Форум: JavaScript & VBScript

Ответов: 0
Просмотров: 500
Имеется выпадающее меню такого вида:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <ul id="horizontal-multilevel-menu">   
  3.         <li class='first-level'>
  4.                 <a href="/institut/" class="root-item">Об институте</a>
  5.                 <ul>
  6.                         <li class='second-level'>
  7.                                 <a href="/institut/svedeniya_ob_obrazovatelnoy_orgamizacii/" class="parent">Сведения об образовательной организации</a>
  8.                                 <ul>
  9.                                         <li class='third-level'>
  10.                                                 <a href="/institut/svedeniya_ob_obrazovatelnoy_orgamizacii/osnovnye_svedeniya.php">Основные сведения</a>
  11.                                         </li>
  12.                                         ...
  13.                                 </ul>                  
  14.                         </li>
  15.                         ...
  16.                 </ul>
  17.         </li>
  18.         ...
  19. </ul>
  20.  


Требуется динамически получать высоту li второго уровня. Так как внутри каждого li содержится ссылка на страницу, то его высота растягивается в зависимости от длины текста ссылки (некоторые пункты меню не влезают на одну строчку и укладываются в две или три).
Высота li нужна для того, чтобы задать margin-top с отрицательным значением для дочернего ul (так, чтобы меню третьего уровня появлялось напротив активного пункта меню второго уровня). По умолчанию меню второго и третьего уровня скрыты (display:none)

Вот мой код, он работает неправильно. Почему то для каждого ul добавляет одинаковый отступ, вместо того, чтобы формировать его динамически:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.         $(document).ready(function(){
  3.                 $('#horizontal-multilevel-menu ul li:has(ul)').each(function(){
  4.                         var liHeight = $(this).outerHeight(true);
  5.                         $(this).children('ul').css('margin-top',(0-liHeight));
  6.                 });
  7.         });
  8.  


В чем может быть проблема?
surrealistic pillow Отправлено: 06 Мая, 2015 - 10:25:15 • Тема: Как глобальные переменные передать функции-обработчику события в jquery • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 815
Задача стоит такая - есть четыре ссылки, внутри которых изображения.
Нужно сделать, чтобы при наведении мыши на ссылку атрибут src изображения менялся (указывал на другое изображение, с префиксом '-hover' в имени)

Вопрос в следующем - как глобальные переменные передать функции-обработчику события в jquery

CODE (html):
скопировать код в буфер обмена
  1. <div class='tm-nite-icons' style='margin:auto;width:300px;'>
  2.         <a class='white0' href='#'><img src='00.png'></a><br>
  3.         <a class='white1' href='#'><img src='01.png'></a><br>
  4.         <a class='white2' href='#'><img src='02.png'></a><br>
  5.         <a class='white3' href='#'><img src='03.png'></a><br>
  6. </div>

CODE (javascript):
скопировать код в буфер обмена
  1. jQuery(document).ready(function(){             
  2.                 arr = new Array('00','01','02','03');// имена файлов-картинок без расширения
  3.                 for(var i = 0; i<=3; i++){                     
  4.                         var a = '.white' + (i);//здесь хранится css класс ссылки
  5.                         var image = a + ' img';//изображение, которому будем менять атрибут src                        
  6.                         //alert (a); //работает, выводит переменную
  7.                         jQuery(a).hover(function(arr, i, image){
  8.                                 var path = '/images/' + arr[i] + '-hover.png';//при наведении мыши на ссылку, путь ведет к изображению с префиксом hover
  9.                                 //alert(path); //не работает, значение глобальной переменной arr[i] определяется как undefined
  10.                                 jQuery(image).attr('src', path);
  11.                         },
  12.                         function(arr, i, image){
  13.                                 var path = '/images/' + arr[i] + '.png';//если мышь не наведена на ссылку, путь ведет к изображению без префикса hover
  14.                                 jQuery(image).attr('src', path);
  15.                         });
  16.                 }
  17.         });
surrealistic pillow Отправлено: 11 Апреля, 2015 - 10:04:44 • Тема: Как уникализировать массив строк, не учитывая регистр • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 1212
День добрый!
мне нужно удалить из массива повторяющиеся строки. Задача осложняется тем, что регистр при этом учитывать не нужно, то есть 'Мпц' и 'МПЦ' - это одно и тоже значение.

То есть, например имеется массив вида:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var arr = ['МПЦ','Кав','Блабла','Мпц','ываыв','Блабла',];
  3. //Нужно преобразовать его в
  4. var arr = ['МПЦ','Кав','Блабла','ываыв'];
  5.  


Вот код для уникализации массива, но в этом решении строки, содержащие одни и теже символы в разных регистрах, рассматриваются как уникальные и остаются в массиве:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function array_unique(array) {    
  3.          
  4.             var p, i, j;
  5.             for(i = array.length; i;){
  6.                 for(p = --i; p > 0;){
  7.                     if(array[i] == array[--p]){
  8.                         for(j = p; --p && array[i] == array[p];);
  9.                         i -= array.splice(p + 1, j - p).length;
  10.                     }
  11.                 }
  12.             }
  13.          
  14.             return true;
  15.         }
  16.  


помогите подкорректировать код
surrealistic pillow Отправлено: 04 Марта, 2015 - 09:24:17 • Тема: Мгновенное изменение значения инпута в зависимости от значения в другом инпуте • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 2311
skiphog пишет:
попробуйте
CODE (javascript):
скопировать код в буфер обмена
  1. $('input[name=quantity]').on('change keyup',function(){...


Да, спасибо, так работает! Радость
surrealistic pillow Отправлено: 04 Марта, 2015 - 08:48:44 • Тема: Мгновенное изменение значения инпута в зависимости от значения в другом инпуте • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 2311
Задача такая - два инпута, один отвечает за количество товара, второй соответственно - за полный прайс (итого), значение в нем должно рассчитываться следующим образом: цена товара*количество товаров.
Нужно чтобы при изменении посредством ручного ввода значения в первом инпуте, мгновенно менялось (рассчитывалось по указанной формуле) значение во втором.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input name="quantity" type="number" min="1" max='3' value="1"/> шт. <br>
  3. <input name="totalprice" type="text" readonly value="1000"/> руб.
  4.  

Использовал jquery:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('input[name=quantity]').on('change',function(){
  3. var q = $('input[name=quantity]').val();
  4. var total = q*1000;
  5. $('input[name=totalprice]').attr('value', total);
  6. });
  7.  

этот код работает, но не совсем так, как надо.
Если нажать на стрелочки вверх-вниз в инпуте с количеством, то значение во втором инпуте (итого) меняется, как надо, однако если в инпуте с количеством ввести значение вручную, или копировать-вставить, то значение во втором инпуте остается прежним, пока курсор находится в инпуте с количеством (говоря по-другому, пока инпут находится в фокусе).
Как реализовать мгновенную смену значения при вводе с клавиатуры?
surrealistic pillow Отправлено: 28 Января, 2015 - 12:58:43 • Тема: AJAX не передает данные методом POST • Форум: Вопросы новичков

Ответов: 2
Просмотров: 436
skiphog
А ларчик просто открывался...
Спасибо, проглядел Улыбка
surrealistic pillow Отправлено: 28 Января, 2015 - 09:43:04 • Тема: AJAX не передает данные методом POST • Форум: Вопросы новичков

Ответов: 2
Просмотров: 436
не могу передать обработчику данные методом POST.

Для примера соорудил простую форму. Данные из полей после отправки формы должны без перезагрузки страницы записываться в <div id='result'></div>
вот код:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script type='text/javascript' src='http://code.jquery.com/jquery-1.11.2.min.js'></script>
  3.  
  4. <script type='text/javascript'>
  5.         $(document).ready(function(){
  6.        
  7.                 $('#form').submit(function(e){
  8.                
  9.                         e.preventDefault();                    
  10.                        
  11.                         $.ajax({
  12.                           url: 'res.php',            //обработчик
  13.                           type: "POST",
  14.                           data: $('#form').serialize,
  15.                           success: function(result){
  16.                                                 $('#result').append(result);
  17.                                         },
  18.                         });            
  19.                         return false;
  20.                 });
  21.         });    
  22.  
  23. </script>
  24.  
  25. <div id='result'></div> //сюда записываем принятые от обработчика данные
  26.  
  27. <form  id = 'form'>
  28. param1<br>
  29. <input type='text' name = 'param1'><br><br>
  30. param2<br>
  31. <input type='text' name = 'param2'><br><br>
  32. <input type='submit' value='register'>
  33. </form>
  34.  

А вот и сам обработчик:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. echo "I get param1 = $_POST['param1'] and param2 = $_POST['param2']";
  4.  

В указанный div записывается следующее - "I get param1 = and param2 = ".

Выходит, обработчику данные не приходят. В чем тут проблема?
surrealistic pillow Отправлено: 19 Января, 2015 - 14:06:31 • Тема: Проблема с рекурсивной функцией • Форум: Если скрипт не работает

Ответов: 22
Просмотров: 3867
DelphinPRO, armancho7777777, LIME Спасибо вам за ответы! Теперь все работает Радость
surrealistic pillow Отправлено: 19 Января, 2015 - 12:29:58 • Тема: Проблема с рекурсивной функцией • Форум: Если скрипт не работает

Ответов: 22
Просмотров: 3867
Мелкий, я не ищу легких путей Радость
На самом деле я еще только учусь и просто хочу понять, почему мой код не работает.
surrealistic pillow Отправлено: 19 Января, 2015 - 12:09:47 • Тема: Проблема с рекурсивной функцией • Форум: Если скрипт не работает

Ответов: 22
Просмотров: 3867
armancho7777777, Мелкий то есть реализовать желаемое возможно только с помощью ООП?
surrealistic pillow Отправлено: 19 Января, 2015 - 11:55:17 • Тема: Проблема с рекурсивной функцией • Форум: Если скрипт не работает

Ответов: 22
Просмотров: 3867
LIMEscandir возвращает массив имен файлов и вложенных директорий, а не путь к файлу\директории, который нужен как аргумент для is_file, file_get_contents и остальных

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB