• Страница 12 из 12
  • «
  • 1
  • 2
  • 10
  • 11
  • 12
Форум Studio AD » Сайтостроение » Общий форум по Javascript » JavaScript & jQuery (Вопросы и ответы.)
JavaScript & jQuery
UnderShot
Дата: Понедельник, 23.11.2009, 20:12 | Сообщение # 1
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Чтобы не создавать отдельные темы с проблемой в JavaScript, решил создать тему с вопросами по jS и jQ. Задаем вопросы…

Ссылки для обучения JS:
1. Центральный Javascript-ресурс
2. Учебники JavaScript
3. Уроки JavaScript
4. Справочник JavaScript
5. JavaScript tutorials
6. Плагины для jQuery
7. Учим JavaScript
8. Интересные решения на JS
Конечно, если я какие-нибудь ссылки пропустил, оповестите меня, и я добавлю эти ссылки.

UPD Стандарт экма на русском: http://javascript.ru/ecma


Очень важная тема!
Filmzona — онлайн фильмы.
  
Диего
Дата: Воскресенье, 22.05.2011, 19:17 | Сообщение # 551
молчун
Группа: Проверенные
Пользователь №: 3861
Сообщений: 21
DSC, спасибо
  
Just_
Дата: Вторник, 31.05.2011, 16:28 | Сообщение # 552
молчун
Группа: Проверенные
Пользователь №: 1418
Сообщений: 19
Получено оценок: 4
Как сделать, чтобы в выпадающем меню при открытии скрытые ссылки "выезжали" не вниз, а наверх.
Вот скрин:

Ссылка на демо
Заранее спаибо.
  
RevoRen
Дата: Вторник, 07.06.2011, 14:19 | Сообщение # 553
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
Code
var mes = document.getElementsByClassName('eMassage'), imgs = mes[0].getElementsByTagName('img'), i = imgs.length;
while (i--) {if (imgs[i].offsetWidth > 490) {imgs[i].style.width = '490px';}}


Вот есть код, первая переменная получает массив из элементов с классом eMassage и потом в следующей переменной мы заключаем все изображения из первого элемента массива mes. Далее я хочу проверить каждый элемент массива на его длину и если она больше чем 490 (ведь offsetWidth число возвращает?), то делаем его длину 490px. Но вот проблема: не работает! Помогите! Пожалуйста.


Follow your Destiny

  
DSC
Дата: Вторник, 07.06.2011, 15:07 | Сообщение # 554
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Code
<script type="text/javascript">
(function(all,klass,j){
for(var i=0;tag=all[i++];)if(tag.className=='eMassage')klass[j++]=tag;
for(var i=0;tag=klass[i++];)if(tag.offsetWidth>490)tag[i].style.width='490px';
})(document.all||document.getElementsByTagName('*'),[],0);
</script>


aka Latro
  
RevoRen
Дата: Среда, 08.06.2011, 14:24 | Сообщение # 555
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
DSC, :'( :'( это же как так?
И почему мой вариант не работает?


Follow your Destiny

  
DSC
Дата: Среда, 08.06.2011, 21:16 | Сообщение # 556
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
RevoRen, возможно не визде есть getElementsByClassName.

aka Latro
  
RevoRen
Дата: Четверг, 09.06.2011, 13:26 | Сообщение # 557
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
Вот еще не понимаю, почему мое замыкание не работает?
Code
<html>
  <head>
   <title>Калькулятор</title>
    
   <script>
    function oncl(x) {
     function add() {
      field.value += buttons[x].value;
     }
      
     return add();
    }
   </script>
  </head>
   
  <body>
  <input type="text" size="50" id="cField">
  <input type="button" value="+" class="cButtons"> <input type="button" value="-" class="cButtons">
  <script>
   var field = document.getElementById('cField'), buttons = document.getElementsByClassName('cButtons');
   for (var i = 0; i < buttons.length; i++) {
    buttons[i].onClick = oncl(i);
   }
  </script>
  </body>
</html>


Follow your Destiny

  
DSC
Дата: Четверг, 09.06.2011, 22:06 | Сообщение # 558
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
потому что вот так надо:
Code
<html>
   <head>
    <title>Калькулятор</title>
   </head>
     
   <body>
   <input type="text" size="50" id="cField">
   <input type="button" value="+" class="cButtons"> <input type="button" value="-" class="cButtons">
   <script>
    var field = document.getElementById('cField'), buttons = document.getElementsByClassName('cButtons');
     function oncl(x) {
      function add() {
       field.value += buttons[x].value;
      }
        
      return add();
     }
    for (var i = 0; i < buttons.length; i++) {
     buttons[i].onClick = oncl(i);
    }
   </script>
   </body>
</html>


А вообще, зачем лишние объявления?
Code
<html>
   <head>
    <title>Калькулятор</title>
   </head>
     
   <body>
   <input type="text" size="50" id="cField">
   <input type="button" value="+" class="cButtons"> <input type="button" value="-" class="cButtons">
   <script>
(function(buts){
for(var i=0;but=buts[i++];)but.onclick=function(){document.getElementById('cField').value+=but.value}
})(document.getElementsByClassName('cButtons'));
   </script>
   </body>
</html>


aka Latro
  
RevoRen
Дата: Пятница, 10.06.2011, 14:09 | Сообщение # 559
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
DSC, а зачем ставятся скобки круглые тут: (function?
И как понять, где ставить скрипт: в шапке кода или после <body>?


Follow your Destiny



Сообщение отредактировал RevoRen - Пятница, 10.06.2011, 14:10
  
DSC
Дата: Пятница, 10.06.2011, 17:15 | Сообщение # 560
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
RevoRen, всё очень просто, ты в функции использовал переменные, которые не были объявлены, т.е. field и buttons передавали undefined, сначала надо объявлять переменные, а потом использовать их!

О скобках:
Code
<script type="text/javascript">
var name='Кенни';

(function(){
var name='Вася';
alert(name);    //    Вася
})();

alert(name);    //    Кенни
</script>
Т.е. переменные не становятся глобальными. Это чтобы не перемешивать названия переменных в абсолютно разных скриптах.


aka Latro
  
Aleko
Дата: Пятница, 10.06.2011, 22:32 | Сообщение # 561
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Так веселее:

+function(){}()


Бесплатные обои.
  
RevoRen
Дата: Суббота, 11.06.2011, 19:23 | Сообщение # 562
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
DSC, так тут же тоже самое:
Code
<script type="text/javascript">
var name='Кенни';

function aaa () {
var name='Вася';
alert(name);    //    Вася
};

alert(name);    //    Кенни
</script>


В чем разница? Ведь переменные не глобальны.


Follow your Destiny

  
DSC
Дата: Суббота, 11.06.2011, 19:56 | Сообщение # 563
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Code
<html>
    <head>
     <title>Калькулятор</title>
        
     <script>
      function oncl(x) {
       function add() {
//    field == undefined
//    buttons == undefined
        field.value += buttons[x].value;
       }
          
       return add();
      }
     </script>
    </head>
       
    <body>
    <input type="text" size="50" id="cField">
    <input type="button" value="+" class="cButtons"> <input type="button" value="-" class="cButtons">
    <script>
     var field = document.getElementById('cField'), buttons = document.getElementsByClassName('cButtons');
     for (var i = 0; i < buttons.length; i++) {
      buttons[i].onClick = oncl(i);    //    функция oncl не понимает что от неё хотят!
     }
    </script>
    </body>
</html>

Code
<script type="text/javascript">
var name='Кенни';    //    глобальная

function aaa () {    //    глобальная
var name='Вася';    //    приватная
alert(name);    //    Вася
};

alert(name);    //    Кенни
</script>

Code
<script type="text/javascript">
var name='Кенни';    //    глобальная

+function(){    //    приватная, т.к. вызывать её кроме как сразу нигде нельзя!
var name='Вася';    //    приватная
alert(name);    //    Вася
}();

alert(name);    //    Кенни
</script>

Что тебе не понятно???


aka Latro

Сообщение отредактировал DSC - Суббота, 11.06.2011, 19:57
  
RevoRen
Дата: Суббота, 11.06.2011, 20:07 | Сообщение # 564
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
Теперь все понял) спасибо.

Follow your Destiny

  
MegaFill
Дата: Воскресенье, 12.06.2011, 15:26 | Сообщение # 565
шептун
Группа: Проверенные
Пользователь №: 3260
Сообщений: 79
Получено оценок: 8
Только не приватная, а локальная

Мой моушенhttp://vimeo.com/megafill
Креатив http://dailycreative.ru/
Веб разработка и тп http://devshack.ru/
  
Aleko
Дата: Вторник, 14.06.2011, 04:52 | Сообщение # 566
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
MegaFill, http://javascript.crockford.com/private.html умник.
© кэп


Бесплатные обои.
  
MegaFill
Дата: Вторник, 14.06.2011, 13:34 | Сообщение # 567
шептун
Группа: Проверенные
Пользователь №: 3260
Сообщений: 79
Получено оценок: 8
Aleko, почитал. Получается приватная == локальная?

Мой моушенhttp://vimeo.com/megafill
Креатив http://dailycreative.ru/
Веб разработка и тп http://devshack.ru/
  
RevoRen
Дата: Суббота, 18.06.2011, 15:53 | Сообщение # 568
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
Code
function abc() {
...
}


Кто знает, как проверить внутри функции abc, не вызвана ли функция abc?
Вот, например, работает функция 1 секунду (анимация) и мне нужно узнать, вдруг эту функцию вызвали раньше её окончания.
Спасибо заранее.


Follow your Destiny

  
RevoRen
Дата: Суббота, 25.06.2011, 17:02 | Сообщение # 569
говорун
Группа: Проверенные
Пользователь №: 3249
Сообщений: 214
Да что же это такое!?
Почему не работает замыкание?

Code
<!DOCTYPE html>
<html>
     <head>
         <title>Test</title>
     </head>
      
     <body style="margin:300px;">
         <input type="text" value="Test">
         <input type="button" value="Test">
          
         <script>
             var input = document.getElementsByTagName('input'),
                 t = 'type',
                 v = 'value',
                 i = input.length;

             while (i--) {
                 if (input[i][t] == 'text') {
                     input[i].onFocus = function(x) {return function() {x.value = '1';}}(input[i]);
                 }
             }
         </script>
     </body>
</html>


Follow your Destiny

  
DSC
Дата: Вторник, 14.02.2012, 01:41 | Сообщение # 570
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
жрут ли таймеры(setTimeut, setInterval) оперативку??

aka Latro
  
DSC
Дата: Вторник, 14.02.2012, 01:42 | Сообщение # 571
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
просто я тут написал небольшое решение для определения, что DOM загружен, вот оно:
Code
<script type="text/javascript">
+function(loaded){

var timer=setInterval(function(){
  if(/loaded|complete/.test(document.readyState)){
   clearInterval(timer);
   loaded=true
  }
},1);

onDOMLoaded=function(func,bind){
  var timer=setInterval(function(){
   if(loaded){
    clearInterval(timer);
    func.call(bind)
   }
  },1)
}

}();
</script>


aka Latro
  
Nigelist
Дата: Понедельник, 20.02.2012, 09:04 | Сообщение # 572
говорун
Группа: Проверенные
Пользователь №: 192
Сообщений: 141
Получено оценок: 17
Привет народ!
Имеется input, в котором есть текстовая подсказка, которая исчезает при фокусе и появляется при потере фокуса.
Code
onfocus="if(this.value==this.defaultValue){this.value='';}" onblur="if(this.value==''){this.value=this.defaultValue;}" value="Имя поля"


Подскажите, как можно оформить текст этой подсказки, не меняя оформление вводимого в поле текста?


Бороться и искать, найти и перепрятать...
  
Deff
Дата: Пятница, 24.02.2012, 22:59 | Сообщение # 573
молчун
Группа: Пользователи
Пользователь №: 4883
Сообщений: 12
Quote (Nigelist)
Имеется input, в котором есть текстовая подсказка, которая исчезает при фокусе и появляется при потере фокуса. Code1onfocus="if(this.value==this.defaultValue){this.value='';}" onblur="if(this.value==''){this.value=this.defaultValue;}" value="Имя поля"Пoдcвeткa oт Исходный код | Переносить строки Подскажите, как можно оформить текст этой подсказки, не меняя оформление вводимого в поле текста?
Ничо не понятно, Нарисуйте(Заскриншотьте/отредатируте) два примера, ДО Потери и после , и чо нужно добавить
  
Nigelist
Дата: Суббота, 25.02.2012, 13:16 | Сообщение # 574
говорун
Группа: Проверенные
Пользователь №: 192
Сообщений: 141
Получено оценок: 17
Deff, вы браузером пользуетесь? В поисковой строке у вас есть название поиска? А когда в поле помещаете курсор? Какой стиль у подсказки и какой стиль у поискового запроса?

Так вот, мне нужно, что бы стиль подсказки и стиль запроса был разным. А точнее мне нужно, с помощью onblur задать стиль подсказке. А именно задать цвет и оформление (наклонный, полужирный, подчеркнутый и т.д. и т.п.) подсказки.


Бороться и искать, найти и перепрятать...
  
Deff
Дата: Вторник, 28.02.2012, 12:32 | Сообщение # 575
молчун
Группа: Пользователи
Пользователь №: 4883
Сообщений: 12
Nigelist, Ну могу родить на jQuery,
Поскольку ява мне - занудно, но идея такая - вы копируете посказку в cкрытый css-ом(display:none} span с каким-то классом(или проще id ,если он разовый), с абсолютным позиционированием, и при потере фокуса даете команду:display:block
Данному классу или id прописываете свой стиль оформления текста
  
Aleko
Дата: Пятница, 06.04.2012, 23:26 | Сообщение # 576
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
RevoRen, а ты его написал не правильно:
Code
(function(x){  return ...  })(100500)

либо

+function(x){  return...  }(100500)


Бесплатные обои.
  
SnakeAce
Дата: Четверг, 27.12.2012, 17:53 | Сообщение # 577
молчун
Группа: Пользователи
Пользователь №: 6601
Сообщений: 1
Здравствуйте, помогите пожалуйста..
Есть код панели выдвигающейся при наведении, ниже в спойлере

Есть установка скорости анимации, но как добавить задежку при закрытии панели?
  
Форум Studio AD » Сайтостроение » Общий форум по Javascript » JavaScript & jQuery (Вопросы и ответы.)
  • Страница 12 из 12
  • «
  • 1
  • 2
  • 10
  • 11
  • 12
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.