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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
а ну если length нужен то $(["ататата"]);

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 14:45 16-05-2014
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bu
так DOM-узлы, которые представлены текстом, не преобразуются в реальные DOM-узлы.
Вот этот "ататата" должен не просто становиться строкой-элементом массива jQuery, а становиться DOM-узлом в объекте jQuery.
А длина в предыдущем примере была просто, чтобы показать, что этот "ататата" не стал частью jQuery.
 
ЗЫ
Да фиг с ним. Пока пойдет и длинный вариант вида
 
$('<span>').html("ататата").contents().slice(0).unwrap()

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 16:53 16-05-2014 | Исправлено: unreal666, 16:54 16-05-2014
Cheery



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

Цитата:
не преобразуются в реальные DOM-узлы.

конечно нет.
 
обернуть нужный текст в span и все, что и делается.


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:35 17-05-2014
panda3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
а $.parseHTML() не спасет отца русской демократии?

Всего записей: 203 | Зарегистр. 06-02-2007 | Отправлено: 15:39 19-05-2014
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
panda3
хм. И вправду

Код:
$($.parseHTML('000<a>aaa1<b>bbb</b>aaa2</a>'))

просто я в основном лазил на каком-то русском сайте, там этого метода нет, поэтому и не сделал так

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 18:34 19-05-2014
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в jQuery есть такой метод:

Код:
.toggleClass( [switch ] )  
 
switch
Type: Boolean  
A boolean value to determine whether the class should be added or removed.

И я чего-то не понял. Какой класс он должен удалять/добавлять ? Класс то не указывается.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 20:22 04-06-2014 | Исправлено: unreal666, 20:22 04-06-2014
Bu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Если true или пусто то скрывает/показывает все классы элемента и запоминает, если false то только запоминает и скрывает все классы, т.е. если заново вызвать с true то они вернутся.

Всего записей: 79 | Зарегистр. 08-10-2001 | Отправлено: 20:54 04-06-2014
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что-то в описании такого не нашел. Хотя сейчас потестил - и вправду.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 21:13 04-06-2014 | Исправлено: unreal666, 21:13 04-06-2014
unreal666



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

Код:
$content.find('*').contents()

получаю исключение "Отказано в доступе".
Посмотрел в отладчике - исключение возникает в методе jQuery().contents (jQuery.fn.contents):

Код:
contents: function( elem ) {
    return elem.contentDocument || jQuery.merge( [], elem.childNodes );
}

при попытке получения содержимого iframe из-за ограничений безопасности в браузерах для iframe.
Можно это как-то обойти без модификации кода jQuery (проверка на elem.localName !== 'iframe')?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 08:50 30-06-2014 | Исправлено: unreal666, 10:10 30-06-2014
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос не по самому коду, а по pull request в коде jquery на github;
- сделал pull request - https://github.com/jquery/jquery/pull/1608
- мне ответили

Код:
Thanks for taking the time to contribute to the jQuery project! Please make sure that your commit message cites a valid bug reported on bugs.jquery.com and that you've signed the CLA.  
* CLA
* Bugs
* Style Guide
* Won't Fix

Чего от меня хотят и как это решить?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 12:05 30-06-2014
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день.
Как реализовать такую вещь.
Как при нажатии на кнопку Отмена, получить rel  класса prim2?  
 

Код:
 
<script>
$('.mess').hide();
 
$('.closed').click(function(){
//    $(this).
    $('.mess').hide();
});
 
 
// Показываем тектареа для примичания
$('.prim2').dblclick(function(){
    ID = $(this).attr('rel');
    
    
    TEXT = $('.prim2[rel='+ ID +']').text();
    $('div.prim2[rel='+ ID +']').hide();
    
    $('.texta[rel='+ ID +']').val(TEXT);
    $('.mess[rel='+ ID +']').show();
 
//    alert(TEXT);
    return false;
});
 
 
</script>    
 
 
                        <div class="res" rel="'. $ready[$t][1] .'">
                            <div class="prim2" rel="'. $ready[$t][1] .'">'. $row["text"] .'</div>
                            <div class="mess" rel="'. $ready[$t][1] .'">
                                <textarea class="texta" rel="'. $ready[$t][1] .'"></textarea><p><input id="save-prim" type="button" value="Сохранить"><input type="button" class="closed" value="Отмена"></p>
                            </div>
                        </div>
 


----------
Абонентское обслуживание и ремонт компьютеров в Днепропетровске

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 10:00 27-11-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
написали же почти уже все

Код:
$('.closed').click(function(){  
    alert($('.prim2').attr('rel'));  
});  


Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 10:48 27-11-2014
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для меня сложность в том, что блоков див таких много.
И в таком решении, он получает рел только первого дива, а остальных не получает.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 12:22 27-11-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
Ну так описывайте сразу все. Нужен массив значений?
 

Код:
$(".prim2").map(function(){return $(this).attr("rel");}).get();

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 14:58 27-11-2014 | Исправлено: Mavrikii, 15:00 27-11-2014
IFKey



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имею такие простенькие фукнции, при клике плюс или минус увеличивается ++ или уменьшается -- цифра в input поле.
Проблема в том что иногда бывает так что вместо +1 прибавляет +2, +3, и даже +4. Не пойму с чем это может быть связано и почему такая избирательность. После обновления страницы он может работать нормально например, а потом в процессе работы сглючить.
 

Цитата:
  $(".AddToBasketBlock").hover(
        function () { //
            //$(this).find(".ProductPriceMinusPlus").css("display","");
            $(this).find(".ProductPriceMinusPlus").toggle();
            AddToBasketBlock = $(this);
             
            $(this).find(".ProductPlus").click(function () {  
                ProductNumber = AddToBasketBlock.find(".ProductNumber").val();
                intProductNumber = parseInt(ProductNumber);
                intProductNumber++;
                if(intProductNumber > 200) {
                    intProductNumber = 200;
                }          
                AddToBasketBlock.find(".ProductNumber").val(intProductNumber);
            });
             
            $(this).find(".ProductMinus").click(function () {  
                ProductNumber = AddToBasketBlock.find(".ProductNumber").val();
                intProductNumber = parseInt(ProductNumber);
                intProductNumber--;
                if(intProductNumber <= 0) {
                    intProductNumber = 1;
                }
                AddToBasketBlock.find(".ProductNumber").val(intProductNumber);
            });
        },
        function () {
            //$(this).find(".ProductPriceMinusPlus").css("display","none");
            $(this).find(".ProductPriceMinusPlus").toggle();
             
        }
  );  

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 11:35 29-12-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IFKey
Жуть какая.
Вы при каждом hover цепляете новый обработчик клика, ессно их количество множится и каждый обрабатывает клик. Отсюда и множественное увеличение. Структура в принципе неправильная.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:44 29-12-2014
IFKey



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

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 14:54 29-12-2014
IFKey



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

Цитата:
$(this).find(".ProductMinus").off("click");
$(this).find(".ProductPlus").off("click");

И все заработало как надо

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 11:50 30-12-2014
Mavrikii

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

Цитата:
И все заработало как надо

все равно неправильно. зачем вы цепляете/удаляете это при hover? почему не прицепить один раз и забыть?

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 20:25 30-12-2014
unreal666



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

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 11:53 24-01-2015 | Исправлено: unreal666, 12:00 24-01-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 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