Настройка параметров по умолчанию и отключение оповещения - PullRequest
0 голосов
/ 04 октября 2019

Я уже некоторое время пытаюсь заставить это работать. У меня нет большого опыта работы с jquery или javascript. Я хочу установить опцию по умолчанию, которая выбирается из выпадающих опций при нажатии кнопки. Я надеюсь, что это также предотвратит появление предупреждения (не уверен, что это правильно). Я добавил следующий код к части «внедрения кода» в squarespace, которая, кажется, работает нормально. (Отредактировано, я удалил код в соответствии с рекомендациями)

Я использую шаблон рассола. Вот ссылка на сайт https://www.metastudio35.com/private-photography-services/event-collection, пароль "Google360".

<squarespace:script src="plugin.js" combo="true"?>
<squarespace:script src="site.js" combo="true"?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

Затем я добавил код, приведенный ниже, на страницу, необходимую для перенаправления кнопки. Что также работает, но без "$ (" # Дополнительные фотографии "). Val (" 0 ");"и строки "$ (" .sqs-widgets-translation-content clear ") .dialog (" close ")".

<script>

   $(document).ready(function(){


     $("#Additional Photos").val("0");

     $( ".sqs-widgets-confirmation-content clear" ).dialog( "close" )

    $(".sqs-add-to-cart-button").click(function(){
      window.location = '/booking/';

  });
   });


 </script>

Это снимок экрана диалогового окна, которое я хочу удалить / отключить. всплывающее диалоговое окно со скриншотом

Если кто-то может указать мне правильное направление или сказать, что я делаю неправильно, это будет очень полезно для учеников.

Спасибо заваша помощь.

1 Ответ

0 голосов
/ 07 октября 2019

Я проверил ваш сайт, и кажется, что jQuery не используется вашим шаблоном, и вместо того, чтобы включать jQuery только для этой простой функции, я вместо этого написал следующий код на vanilla JS.

function setValue() {

    var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];
    dropdown.value = '0';
    Y.one('#'+dropdown.id).simulate('change');

}

window.onload = setValue;

Если вам интересно выяснить, почему ваш код не работает, вот объяснение:

$('#Additional Photos').val("0")

Эта строка кода устанавливает элемент , который имеет и ID из «Дополнительные фотографии» со значением «0».

Ваше поле выбора "Дополнительные фотографии" не имеет ID из "Дополнительные фотографии", вместо этого - оно имеет случайно сгенерированный идентификатор который генерируется каждый раз при обновлении страницы.

Таким образом, причина того, что ваш код не работает, заключается в том, что вы просто нацеливаетесь на неправильный элемент:)


var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];

Из-за того, что идентификатор поля выбора не является постоянным, мы нацеливаем поле выбора вместо атрибута «data-variable-option-name». Я выяснил этот константный атрибут, просто проверив selectbox в инструментах ChromDev.


dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');

Еще одна вещь, которую следует учитывать, это тот факт, что ваш шаблон использует YUI для обработкиполе выбора. Это означает, что нам нужно вручную вызвать событие «change» для обновления пользовательского интерфейса. Как видно из приведенного выше кода, в первой строке задается значение поля выбора, а во второй указывается YUI для имитации события «изменение» и, следовательно, - обновления пользовательского интерфейса.

Надеюсь, этопомогает!

...