Is there any way to fix the code so that when you click on the link the route changes? Those. In the second value of the route "ΠΠΎΠ²ΡΠΉ Π³ΠΎΡΠΎΠ΄" value from the data-map ( pos ) was substituted and the route was changed?
If I put onclick inside the init() card is not initialized before the click.
$('.map__link').on('click', function(e){ e.preventDefault(); var pos = $(this).data('map'); }); $('.map__link').on('click', function(e){ e.preventDefault(); var pos = $(this).data('map'); return pos; }); function init () { // ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π½Π°Π±ΠΎΡ ΠΎΠΏΠΎΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ, ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΡΠ°Π½Π·ΠΈΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ. var referencePoints = [ "Π ΠΎΡΡΠΈΡ, ΠΠΎΡΠΊΠ²Π°", "ΠΠΎΠ²ΡΠΉ Π³ΠΎΡΠΎΠ΄" ]; // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΡΠ»ΡΡΠΈΠΌΠ°ΡΡΡΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΉ. var multiRoute = new ymaps.multiRouter.MultiRoute({ referencePoints: referencePoints }, { // ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΡΠ΅Π²ΡΡ
ΡΠΎΡΠ΅ΠΊ. wayPointStartIconColor: "#000000", // ΠΠ°Π΄Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΡΡΠ΅Π²ΠΎΠΉ ΡΠΎΡΠΊΠΈ. // wayPointFinishIconLayout: "default#image", // wayPointFinishIconImageHref: "images/sokolniki.png", wayPointFinishIconLayout: 'islands#icon', iconColor: '#0095b6', wayPointFinishIconImageSize: [30, 30], wayPointFinishIconImageOffset: [-15, -15], // ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΏΡΡΠ΅Π²ΡΡ
ΡΠΎΡΠ΅ΠΊ ΠΌΠ°ΡΡΡΡΡΠ°. // wayPointVisible:false, // ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΡΠ°Π½Π·ΠΈΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ. viaPointIconRadius: 7, viaPointIconFillColor: "#000088", viaPointActiveIconFillColor: "#fc6059", // Π’ΡΠ°Π½Π·ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ // ΠΌΠ°ΡΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ. viaPointDraggable: true, // ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΡΡΠ°Π½Π·ΠΈΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ ΠΌΠ°ΡΡΡΡΡΠ°. // viaPointVisible:false, // ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠΎΡΠ΅ΡΠ½ΡΡ
ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄ ΠΏΡΡΠ΅Π²ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ. pinIconFillColor: "#000088", pinActiveIconFillColor: "#fc6059", // ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΡΡΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ ΠΏΡΡΠ΅Π²ΡΡ
ΡΠΎΡΠ΅ΠΊ. // pinVisible:false, // ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠ°ΡΡΡΡΡΠ°. routeStrokeWidth: 2, routeStrokeColor: "#000088", routeActiveStrokeWidth: 6, routeActiveStrokeColor: "#fc6059", // ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΡΡΡΡΡ Π±ΡΠ» Π²ΠΈΠ΄Π΅Π½ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. boundsAutoApply: true }); // ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΉ. customizeSecondPoint(); // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ. // var removePointsButton = new ymaps.control.Button({ // data: { content: "Π£Π΄Π°Π»ΠΈΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ"}, // options: { selectOnClick: true } // }); // ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ. // removePointsButton.events.add('select', function () { // multiRoute.model.setReferencePoints([ // referencePoints[0], // referencePoints[referencePoints.length - 1] // ], []); // }); // removePointsButton.events.add('deselect', function () { // multiRoute.model.setReferencePoints(referencePoints, viaIndexes); // // Π’.ΠΊ. Π²ΡΠΎΡΠ°Ρ ΡΠΎΡΠΊΠ° Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π°, Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ Π΅Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ. // customizeSecondPoint(); // }); // Π€ΡΠ½ΠΊΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠΈ. function customizeSecondPoint () { multiRoute.model.events.once("requestsuccess", function () { var yandexWayPoint = multiRoute.getWayPoints().get(1); // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π±Π°Π»ΡΠ½ Ρ ΠΌΠ΅ΡΠΊΠΈ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠΈ. ymaps.geoObject.addon.balloon.get(yandexWayPoint); yandexWayPoint.options.set({ preset: "islands#icon", // iconContentLayout: ymaps.templateLayoutFactory.createClass( // '<span style="color: red;">Π―</span>Π½Π΄Π΅ΠΊΡ' // ), // balloonContentLayout: ymaps.templateLayoutFactory.createClass( // '{{ properties.address|raw }}' // ) }); }); } // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ°ΡΡΡ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° Π½Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. var myMap = new ymaps.Map('map', { center: [55.739625, 37.54120], zoom: 7, // controls: [removePointsButton] }, { buttonMaxWidth: 300 }); // ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΡΠ»ΡΡΠΈΠΌΠ°ΡΡΡΡΡ Π½Π° ΠΊΠ°ΡΡΡ. myMap.geoObjects.add(multiRoute); } ymaps.ready(init); #map { height: 400px; width: 100%; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> <div id="map"></div> <a href="#" data-map="ΠΠΎΡΠΊΠ²Π°" class="map__link active"> Π‘Ρ
Π΅ΠΌΠ° 1 </a> <a href="#" data-map="ΠΠΈΠ΅Π²" class="map__link"> Π‘Ρ
Π΅ΠΌΠ° 2 </a> <a href="#" data-map="ΠΠΎΡΠΎΠ½Π΅ΠΆ" class="map__link"> Π‘Ρ
Π΅ΠΌΠ° 3 </a>