Поместите переменную как HREF - PullRequest
4 голосов
/ 03 мая 2011

В принципе, возможно ли сделать что-то вроде ....

<a href=link onClick="clicked();">Click me!</a>

<script>
function clicked() {
    if(myVar == 1) {
        link="http://stackoverflow.com"
    }
    else if (myVar == 2) {
        link="http://google.com"
    }
}
</script>

Этот пример, вероятно, невозможен из-за одновременной стрельбы ... Но возможно ли вообще использовать там переменные?

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

Я работаю с HTML, CSS, JavaScript и JQuery ...

Спасибо!

Ответы [ 6 ]

3 голосов
/ 03 мая 2011

Вы могли бы сделать ...

$('a').click(function(event) {
    if (condition) {
        event.preventDefault();
        window.location = 'http://different-url.com';
    }
});

Если условие выполнено, вы перейдете на другой URL.

В противном случае ссылка будет работать как положено.

Если бы вы не хотели использовать jQuery, это было бы ...

var anchors = document.getElementsByTagName('a');
for (var i = 0, anchorsLength; i < anchorsLength; i++) {
   anchors[i].onclick = function(event) {
      if (condition) {
          event.preventDefault();
          window.location = 'http://different-url.com';
      }
   }
}
1 голос
/ 03 мая 2011

Нет, это невозможно сделать так, как вы хотите.

Почему бы вам не сделать это вместо этого -

<a href="http://www.example.com" onClick="clicked();">Click me!</a>

<script>
function clicked()
{
    if(myVar == 1) 
    {
        window.location.href = "www.stackoverflow.com";
    }
    else if (myVar == 2)
    {
        window.location.href = "www.google.com";
    }
}

Взгляните на Mozilla Developer Center , чтобы узнать больше об объекте window.location.

1 голос
/ 03 мая 2011

Вы можете просто использовать Javascript для перенаправления:

<script>
function clicked() {
    if(myVar == 1) {
        window.location = "http://url1.com";
    }
    else if (myVar == 2) {
        window.location = "http://url2.com";
    }
}
</script>
0 голосов
/ 03 мая 2011
function clicked() {
    var dest = "";
    if(myVar) 
       dest = "http://stackoverflow.com";
    else
       dest = "http://google.com"
    window.navigate(dest);

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

0 голосов
/ 03 мая 2011

Попробуйте это

<a href=link onClick="clicked();">Click me!</a>

<script>
function clicked() {
    if(myVar == 1) {
        location.replace("http://stackoverflow.com");
    }
    else if (myVar == 2) {
        location.replace("http://google.com");
    }
}
</script>

Приветствия. Это приведет вас в нужное место на основе значений myVar!

0 голосов
/ 03 мая 2011

вы могли бы сделать это:

<script> function clicked() {
    if(myVar == 1) {
        window.location="http://stackoverflow.com"
    }
    else if (myVar == 2) {
        window.location="http://google.com"
    } } 
</script>
...