Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Изучаем jquery вместе )


ArtemPitov
 Поделиться

Рекомендованные сообщения

Доброго времени суток, по немного познаю jquery, столкнулся с такой штукой, не могу найти что означает this или $(this)

Ссылка на комментарий
Поделиться на других сайтах

$(this)[0] === this

this - этом DOM элемент в контексте вызова. $() - конструктор jQuery инициализирующийся этим элементом, для того чтобы выполнять методы jQuery над ним.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо за ответ 

 

а вот такой this что означает в button или select onchange="вызов кой то функции (this)"   ?

Ссылка на комментарий
Поделиться на других сайтах

 

 

элемент в контексте вызова

Для onchange это eventObject значение которого изменилось, ведь один обработчик можно сразу навешивать на несколько элементов.

Ссылка на комментарий
Поделиться на других сайтах

Понял спасибо за подсказку, а то гуглил - гуглил и не выгуглил )

Ссылка на комментарий
Поделиться на других сайтах

просто скачайте какую-то книгу по jquery их десятки если не сотни и прочитайте, отпадет 99.9% вопросов.

Ссылка на комментарий
Поделиться на других сайтах

Доброго времени суток, по немного познаю jquery, столкнулся с такой штукой, не могу найти что означает this или $(this)

 

Для начала вам неплохо было бы понять, что есть this в JavaScript.

 

разница описана здесь: http://web-answers.ru/questions-and-answers/javascript/jquery/jquery-raznitsa-mezhdu-this-i-this/

 

6uy7Jdr.png

Ссылка на комментарий
Поделиться на других сайтах

Спасибо добрый человек )

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Подыму темку.

Плагин jQuery cookie. Иногда необходимо выводить сообщение во всех товарах определенной категории и потом установить для этого сообщения cookie на какой-то срок.

Если ссылка у товара ЧПУ, то все красиво получается. А вот если не ЧПУ, то cookie устанавливается для всего домена.

Попытка через location.pathname + location.search не удалась.

Где заблудился?

Изменено пользователем klaos27
Ссылка на комментарий
Поделиться на других сайтах

устанавливать куку с указанием id

mycookie = category_id

Ссылка на комментарий
Поделиться на других сайтах

это единичный случай. правильно понимаю?

А если есть настройка, например "Ограничить сеансом пользователя", и модуль с такой настройкой применять к товарам разных категорий. Т.е.:

1) Текст сообщения (модуль 1) - товары категории 1

2) Другой текст сообщения (модуль 2) - товары категории 2.

Повторюсь если ссылки товара ЧПУ, то путь у cookie -" /категория/товар/". Если ссылка товара не ЧПУ, то путь у cookie - "/"

Ссылка на комментарий
Поделиться на других сайтах

Повторюсь если ссылки товара ЧПУ, то путь у cookie -" /категория/товар/". Если ссылка товара не ЧПУ, то путь у cookie - "/"

rtfm

я серьёзно

Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Всем добрый день!
Смысл такой. Есть две опции с типом select и image. Они совмещены в одну чтобы выбрал в одной, значение выбралось и в другой.
для версии 1.5 строка, которая за все это дело отвечает, выглядит следующим образом и работает отлично

<select onchange="$(this).parent().find('input[value='+$(this).val()+']').attr('checked','checked').trigger('change');"> 

Если сие дело ставить на oc 2.1 где версия jquery 2.1.1, то в консоли получаем

Uncaught Error: Syntax error, unrecognized expression: input[value=]

гугл поискал и сказал что надо сделать так

.find('input[value="' + $(this).val() + '"]')

Но при этом из-за двойных кавычек все ломается.

 

Буду рад любым соображением на этот счет.
 
 

Изменено пользователем klaos27
Ссылка на комментарий
Поделиться на других сайтах

Всем добрый день!

Смысл такой. Есть две опции с типом select и image. Они совмещены в одну чтобы выбрал в одной, значение выбралось и в другой.

для версии 1.5 строка, которая за все это дело отвечает, выглядит следующим образом и работает отлично

<select onchange="$(this).parent().find('input[value='+$(this).val()+']').attr('checked','checked').trigger('change');"> 

Если сие дело ставить на oc 2.1 где версия jquery 2.1.1, то в консоли получаем

Uncaught Error: Syntax error, unrecognized expression: input[value=]

гугл поискал и сказал что надо сделать так

.find('input[value="' + $(this).val() + '"]')

Но при этом из-за двойных кавычек все ломается.

 

Буду рад любым соображением на этот счет.

 

 

пробуйте так .find('input[value=\' + $(this).val() + \']')

Ссылка на комментарий
Поделиться на других сайтах

пробуйте так .find('input[value=\' + $(this).val() + \']')

Благодарю. В консоли ошибок нет, но при таком раскладе далее .attr('checked','checked').trigger('change'); перестает работать, так не присваивается checked и нет связки со второй опцией

Ссылка на комментарий
Поделиться на других сайтах

Что-то очень мудрено

 

Смысл такой. Есть две опции с типом select и image. Они совмещены в одну чтобы выбрал в одной, значение выбралось и в другой.
для версии 1.5 строка, которая за все это дело отвечает, выглядит следующим образом и работает отлично

<select onchange="$(this).parent().find('input[value='+$(this).val()+']').attr('checked','checked').trigger('change');">

давайте разберем

 

$(this).parent().find('input[value=+$(this).val()+]').attr('checked','checked').trigger('change')

 

 

$(this) //- сам селект

.parent() // родитель

.find('input[value=+$(this).val()+]') // ищем нужный инпут по значению селекта

.attr('checked','checked') // устанваливаем checked - это должен быть input type="radio" или "checkbox"

 

.trigger('change') - вызываем событие , а к этому инпуту событие подвязано?

Ссылка на комментарий
Поделиться на других сайтах

Что-то очень мудрено

 

.trigger('change') - вызываем событие , а к этому инпуту событие подвязано?

в инпуте это

onchange="recalculateprice(<?php echo $option_value['product_option_value_id']; ?>);"

Работающий пример

Ссылка на комментарий
Поделиться на других сайтах

лучше показать не работающий

здесь

Ссылка на комментарий
Поделиться на других сайтах

Ок. по шагам

до

$(this).parent().find('input[value='+$(this).val()+']').attr('checked','checked').trigger('change');">

после

<select onchange="$('.option-image input').parent().find('input[value=' + $(this).val() + ']').prop('checked', true).trigger('change');

где здесь this

Ссылка на комментарий
Поделиться на других сайтах

Ок. по шагам

до

$(this).parent().find('input[value='+$(this).val()+']').attr('checked','checked').trigger('change');">

после

<select onchange="$('.option-image input').parent().find('input[value=' + $(this).val() + ']').prop('checked', true).trigger('change');

где здесь this

 

на той странице я уже сломал все :)

Вот здесь лучше посмотреть 

Ссылка на комментарий
Поделиться на других сайтах

но это в FF работает

Неа. выбирается первый раз. Если пойти на второй и более круг, то...вот попробуйте. И нельзя сбросить к первоначальному виду.

Вот работающий пример

Ссылка на комментарий
Поделиться на других сайтах

$('input[value=+ $('#option-238 select').val() +]').prop('checked','checked')

 

вот так у меня работает

 

prop('checked','checked') !!!

Изменено пользователем chukcha
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.