У меня есть виджет на моей странице, чтобы получить некоторые данные, которые я называю так:

{amp}lt;div id="widgetContain"{amp}gt; {amp}lt;script type="text/javascript" src="https://widget.com/widgetscript.js" async{amp}gt; { "a": "1m", "b": 425, "c": "light", "d": false, "e": 450, "f": "blue", "g": true, "g": "en" } {amp}lt;/script{amp}gt; {amp}lt;/div{amp}gt; 

Кроме того, у меня есть некоторые ссылки, которые при нажатии на меня нужно изменить значение «F».

 {amp}lt;p{amp}gt;{amp}lt;a href="" data-href="red" class="ttlink active"{amp}gt;Red{amp}lt;/a{amp}gt;{amp}lt;/p{amp}gt; 

Я не знаю, как заставить это работать. Я попытался сделать значение для «F» переменной:

 { .... "f":newVal; } $('.ttlink').on('click', function(e){ var newVal = $(this).attr('data-href'); }); 

И это, очевидно, не работает. Как загрузить сценарий, а затем пары ключ / значение в качестве параметров и изменить их по щелчку ссылки, загружая библиотеку только один раз?

Скрипка, которая работает в соответствии с назначением автора API — https://jsfiddle.net/35u247xc/

Скрипка с настройкой, которая мне нужна -{amp}gt; https://jsfiddle.net/5gar867m/1/

Я бы посоветовал что-то вроде этого:

 {amp}lt;body{amp}gt; {amp}lt;div id="widgetContain"{amp}gt; {amp}lt;script type="text/javascript" src="https://widget.com/widgetscript.js" async{amp}gt;{amp}lt;/script{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;!-- end of page --{amp}gt; {amp}lt;script{amp}gt; var params = { a: "1m", b: 425, c: "light", d: false, e: 450, f: "blue", g: true, h: "en" }; $('.ttlink').on('click', function(e) { params.f = $(this).data("href"); }); {amp}lt;/script{amp}gt; {amp}lt;/body{amp}gt; 

Будет загружена внешняя библиотека, и после загрузки всего содержимого будет запущен второй блок скрипта.

Обновить

Можно попробовать другой заказ.

 {amp}lt;body{amp}gt; {amp}lt;div id="widgetContain"{amp}gt; {amp}lt;script{amp}gt; var params = { a: "1m", b: 425, c: "light", d: false, e: 450, f: "blue", g: true, h: "en" }; $('.ttlink').on('click', function(e) { params.f = $(this).data("href"); }); {amp}lt;/script{amp}gt; {amp}lt;script type="text/javascript" src="https://widget.com/widgetscript.js" async{amp}gt; params {amp}lt;/script{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;!-- end of page --{amp}gt; {amp}lt;/body{amp}gt; 

Это определяет сначала объект, называемый params , затем привязывает обратный вызов к щелчку, а затем, когда загружается виджет, объект может быть загружен вместе с ним. Обратите внимание, что он будет загружаться только один раз при загрузке страницы, и сделанные изменения не будут влиять на виджет после загрузки страницы.

Если вам нужна дополнительная помощь, вам нужно будет более конкретно сообщить нам, какой виджет вы используете. Предоставить мин. пример: https://stackoverflow.com/help/minimal-reproducible-example

установить их в переменную

 let params = { "a": "1m", "b": 425, "c": "light", "d": false, "e": 450, "f": "blue", "g": true, "g": "en" }; 

и изменить значения

 $('.ttlink').on('click', function(e){ params.b = $(this).attr('data-href'); }); 

элемент скрипта не может быть изменен