Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Открыть новую тему     Написать ответ в эту тему

Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Фильтр по слову "jquery" не дал какой-либо общей темы по этой библиотеке, поэтому решился создать. У меня возник такой вопрос: согласно справочной документации такой код:
 

Код:
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>4</p>
 
  <script language="javascript">
      $("p")[0].html("test");
  </script>

 
должен <p>1</p> заменить на <p>test</p>. Но не работает. Пробовал еще так:
 

Код:
$("p").get(0).html("test");

 
Есть подозрения, что мануал, по которому осваиваю библиотеку, написан для более старой версии, а позже принцип обращения к конкретному элементу из коллекции как-то изменился. Кто знает, как реализовать это (версия библиотеки - v1.3.2)



Документация по jQuery - eng, рус

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 16:22 11-08-2009 | Исправлено: Cheery, 07:35 09-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xerpal
http://jsfiddle.net/1337/acwyQ/
 
Jokerjar79

Код:
$("p").eq(0).html("test");  

 
.eq() добавлен в 1.1.2
 $("p")[0] такое удобно для массивов. К примеру "bla blblaa blabla koko".match(/blabla (koko)/)[1] вернет "koko", а не массив ["blabla koko", "koko"].
LOL первое сообщение закреплено не заметил дату.

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 01:28 30-07-2013 | Исправлено: Bu, 08:25 07-08-2013
Kaylang



Вредный и упрямый
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del.

Всего записей: 38546 | Зарегистр. 29-08-2002 | Отправлено: 12:17 31-07-2013 | Исправлено: Kaylang, 16:30 31-07-2013
AnnaLisa777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дорогие друзья!
 
Не могли бы Вы мне подсказать, как правильно соединить два jquerry на главной странице: slider и lightbox?
 
У меня в шапке работает слайдер, но вместе с ним не работает лайтбокс для фотографий.
 
Слайдер:
 

Код:
<script type="text/javascript" src="js/slider.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
 
<style type="text/css">
 .slider {
   width:1000px;
   height:300px;
   overflow:hidden;
   margin:0px auto;
   background-image:url(slider/img/4.png);
   background-repeat:no-repeat;
   background-position:center;
}
 .slider img {
   width:1000px;
   height:300px;
   display:none;
}
</style>
 
<body onload="Slider();" ...
  <div class="slider">
  <img id="1" src="slider/img/1.png" border="0" alt="1" />
  <img id="2" src="slider/img/2.png" border="0" alt="2" />
  <img id="3" src="slider/img/3.png" border="0" alt="3" />
  </div>
 
Лайтбокс:
 
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
 
<a href="images/clients/1.JPG" rel="lightbox">

 
Может быть нужно как-то соединить две CSS (в коде и в файле) в один файл? Я вроде пробовала, все равно не работает. Или что-то добавить в body onload?
 
Заранее спасибо за помощь!
 
Анна

Всего записей: 5 | Зарегистр. 01-08-2013 | Отправлено: 00:21 01-08-2013 | Исправлено: Cheery, 00:22 01-08-2013
CheRt



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AnnaLisa777,
1.
Цитата:

Код:
<script type="text/javascript" src="js/slider.js"></script>  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>

Поди слайдер надо грузить после используемой библиотеки.
 
2.
Цитата:
<script type="text/javascript" src="js/prototype.js"></script>

Судя по коду, лайтбокс основан на прототайпе. И jquery, и prototype определяют, по умолчанию, для себя глобальную переменную $. Чтобы срастить их, можно покопать в сторону вызова jQuery через

Код:
var $j = jQuery.noConflict();

С внесением соотв. правок в слайдер. ($ заменить на $j, может и не понадобится - надо смотреть на конкретику) и грузить после определения переменной.
Примерно в таком порядке.

Код:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript">
  var $j = jQuery.noConflict();
</script>
<script type="text/javascript" src="js/slider.js"></script>
 



----------
В огне бода нет и не будет!
До встречи в СССР 2.0!

Всего записей: 1118 | Зарегистр. 14-12-2001 | Отправлено: 01:15 01-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AnnaLisa777
 

Код:
$(document).ready(function(){
 
$.when(
    $.getScript( "/mypath/myscript1.js" ),
    $.Deferred(function( deferred ){
        $( deferred.resolve );
    })
).done(function(){
 
    // здесь будет работать только myscript1.js
 
});
 
// имейте в виду здесь myscript1.js будет работать только если успеет подгрузиться или будет закэширован
 
});
 
$(document).ready(function(){
 
$.when(
    $.getScript( "/mypath/myscript2.js" ),
    $.Deferred(function( deferred ){
        $( deferred.resolve );
    })
).done(function(){
 
    // здесь будет работать только myscript2.js
 
});
 
});

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 01:30 01-08-2013
AnnaLisa777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 5 | Зарегистр. 01-08-2013 | Отправлено: 01:32 01-08-2013 | Исправлено: AnnaLisa777, 01:53 01-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<script type="text/javascript">
jQuery.noConflict(true);
</script>  
<script type="text/javascript" src="js/slider.js"></script>

 
И в slider.js менять $ не надо.

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 01:53 01-08-2013 | Исправлено: Bu, 01:54 01-08-2013
AnnaLisa777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bu
 
Поменяла расположение скриптов и заменила $j обратно на $.
 
В результате все то же самое, что и с советом CheRt , только первая картинка теперь не появляется, и вместо нее сразу появляется фон.

Всего записей: 5 | Зарегистр. 01-08-2013 | Отправлено: 02:02 01-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AnnaLisa777
Зачем использовать ligthbox если есть даже библиотеконезависимые аналоги типа http://highslide.com/?

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 02:39 01-08-2013 | Исправлено: Bu, 02:39 01-08-2013
AnnaLisa777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bu
 
Ваш аналог к каждой развернутой фотографии добавляет на себя ссылку и слова - Powered by Highslide.
 
Хотя, скорее всего, это можно удалить в самом скрипте.

Всего записей: 5 | Зарегистр. 01-08-2013 | Отправлено: 02:58 01-08-2013 | Исправлено: AnnaLisa777, 03:03 01-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AnnaLisa777

Цитата:
Ваш аналог к каждой развернутой фотографии добавляет на себя ссылку и слова - Powered by Highslide.

это официально убирается/заменяется одной строчкой в конфигурации скрипта.
http://highslide.com/ref/hs.showCredits

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:02 01-08-2013 | Исправлено: Cheery, 03:03 01-08-2013
AnnaLisa777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 5 | Зарегистр. 01-08-2013 | Отправлено: 04:50 01-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет, решил обновить jqurey c 1.7.1 на 2.0.0. В моем коде нашлись устаревшие методы, а именно .delegate почитав документацию заменил:

Код:
 
$("div").delegate("#navi a", "click" ,function(){
...
});
 

на  

Код:
 
 $('a').on('click.navi', function(){
...
});
 

перестали обрабатываться ссылки в участке кода:

Код:
 
<div id=\"navi\">
   <div id=\"ex1\">
      <a href=\"rental_cars/economy_class.php\">Тест</a>
   </div>
</div>
 

а в этом участке все ок:

Код:
 
<div id=\"navi\">
   <ul id=\"nav\">
      <li><a href=\"index.php\">Главная</a></li>
   </ul>
</div>
 

 
Уже перебрал 1000 вариантов с методом .on, ни как не получается заставить работать

Код:
 
<div id=\"navi\">
   <div id=\"ex1\">
      <a href=\"rental_cars/economy_class.php\">Тест</a>
   </div>
</div>
 

 
Подскажите кто знает, где собака зарыта.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 19:47 05-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Подскажите кто знает, где собака зарыта.


Цитата:
 $('a').on('click.navi', function(){  
...  
});  

жуть то какая.. вы зачем ко всем a обработчик цепляете?  
проще к одному общему родителю
 
$('#navi').on('click', 'a', function(){  
...
});
 
ну или
$('div').on('click', '#navi a', function(){  
...
});
 
не знаю, что у вас там меняется

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:50 05-08-2013 | Исправлено: Cheery, 19:51 05-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery предложенный Вами первый вариант обрабатывает ссылки на панели навигации, но не обрабатывает в контенте.
Второй вариант обрабатывает ссылки в контенте, но не обрабатывает на панели навигации.
 
Зачем было .delegate отменять...

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 12:22 06-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
Добавьте

Код:
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>

Ошибки в консоли.

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 15:12 06-08-2013 | Исправлено: Bu, 15:13 06-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bu Вы имеете в виду оставить при этом .delegate?
Ну испробовал, все тоже самое, обрабатывает ссылки в контенте, но не обрабатывает на панели навигации при таком раскладе.
Как же все таки сделать идентичную обработку  

Код:
 
$("div").delegate("#navi a", "click" ,function(){  
...  
});  
 

 
методом .on
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 17:48 06-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
ну так укажите что меняется.. для чего вы .on используете? что является родителем, а какое содержимое меняется?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:28 06-08-2013
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
 

Код:
$(document).on("click", "#navi a", function(){  
 
});  

 
Либо вот это должно работать, либо не работает что то другое. Я всегда указываю в первой скобке document, т.к. даже если указать body, то .on себя как то странно ведет.

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 06:19 07-08-2013 | Исправлено: Bu, 06:21 07-08-2013
mishakor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток
Есть три input

Код:
<input type='text' value='2'/>
<input type='text' value='1'/>
<input type='text' value='3'/>

 
Следующий код выбирает эти инпуты и происходит обработка

Код:
$('input').each(function(){
/*обработка*/
});

Инпуты обрабатываются в той последовательности в какой они стоят в документе
 
Вопрос в следующем, можно ли как нибудь отсортировать $('input') чтобы обрабатывать данные в последовательности увеличение value. Обращаю внимание не отсортировать их в самом документе а именно в обработке.

Всего записей: 65 | Зарегистр. 29-09-2008 | Отправлено: 07:33 07-08-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru