Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


ArtemPitov

Recommended Posts

Доброго времени суток, по немного познаю 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 months later...

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

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

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

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

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

Змінено користувачем klaos27
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Надіслати
Поділитися на інших сайтах

  • 4 months later...

Всем добрый день!
Смысл такой. Есть две опции с типом 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.