Преврати строку в якорь с помощью jQuery - PullRequest
0 голосов
/ 11 сентября 2011

Вторая часть кода ниже слушает, когда щелкают маркеры Карты Google, и добавляет URL в адресную строку. Как мне получить это, чтобы вместо этого обернуть традиционные якорные теги вокруг URL-адресов? например

        markers[1] = new google.maps.Marker({
            position: sainsburys,
            url: '#test2',
            title: 'Sainsburys',
            map: map
        });


        for ( i = 0; i < markers.length; i++ ) {
            google.maps.event.addListener(markers[i], 'click', function() {
            window.location.href = this.url;
            });
        }

Полный пример здесь http://jsfiddle.net/BQzLq/8/,, хотя вы не можете видеть, как он работает должным образом, потому что JSFiddle не позволяет изменять URL-адрес.

Ответы [ 3 ]

1 голос
/ 11 сентября 2011

Вы можете манипулировать свойством window.location.hash.Непосредственное манипулирование этим не приводит к прокрутке браузера, но если вы затем вызываете call $.localScroll.hash(), он может вести себя так, как вы хотите.

window.location

0 голосов
/ 11 сентября 2011

Вы можете добавить div под картой:

    <div id="linkArea">
    </div>

, тогда вы можете добавить свои якоря в это:

    var anchor = '<a href="' + this.url + '">' + this.title + '</a><br/>';
    $('#linkArea').append(anchor);

В результате вы должны видеть, что ваши якоря появляются везде, где только можновы находите div.

0 голосов
/ 11 сентября 2011

Этот метод использует временные значения <div> и innerHTML, но вы можете полностью создать элемент A с вызовами DOM , если хотите.

// create anchor
var anchorHtml = "<a href='" + this.url + "'>ANCHOR TEXT</a>";
var tempDiv = document.createElement("div");
tempDiv.innerHTML = anchorHtml;
var anchor = tempDiv.getElementsByTagName("a")[0];

// use anchor
document.body.appendChild(anchor);
...