2013-02-26 3 views
0

J'ai une question simple (?), J'ai une fonction qui est similaire.Utilisation de jQuery avec un href

value = $("input[@name=typeGroup]:checked").val(); 
if (value == "value1") { 
self.doSomething1(); 
} 
else if (value == "value2") { 
self.doSomething2(); 
} 

qui est utilisé de

<div><input type='radio' name='typeGroup' value='value1' data-bind='checked: searchType' />Radio1</div> 

<div><input type='radio' name='typeGroup' value='value2' data-bind='checked: searchType' />Radio2</div> 

La chose est que, je voudrais une option similaire sur la fonction $("input[@name=typeGroup]:checked) mais pour un <a href> qui ressemble à

<a href='#' data-bind='click: clickActivateFunction' id='draw_pic'> 

Est-il possible? Et comment cela ressemblerait-il?

+3

prendre @name de soins est dépréciée, retirez le @ – r043v

+1

'$ ('# draw_pic')' ??? Notez qu'une ancre n'est ni vérifiée ni a une valeur? – adeneo

+0

'data-bind' sent avec Knockout.js. Si vous utilisez ceci, vous devriez marquer comme tel. –

Répondre

1

Si vous avez besoin pour obtenir le élément d'ancrage, vous pouvez utiliser:

$('#draw_pic') 

Comme vous avez un identifiant unique sur cet élément.

Mise à jour

Si vous voulez des choses différentes, je lier différents événements plutôt que d'utiliser si des déclarations.

$('#draw_pic').click(function() { 
    alert('Draw pic clicked'); 
}); 

$('#draw_more').click(function() { 
    alert('Draw more clicked'); 
}); 

Si c'est juste une différence subtile, vous pouvez utiliser une instruction if ...

$('a').click(function() { 
    if (this.id === 'draw_pic') { 
     alert('Draw pic clicked'); 
    } 
}); 
+0

Le problème est que je voudrais vérifier si c'est draw_pic ou autre chose.exemple: \t 'si (valeur == "valeur1") {// faire des choses \t} \t else if (valeur == "valeur2") {// \t faire stuff11 \t}' – WeeklyDad

+0

Vous pouvez lier chacun d'entre eux individuellement, ou dans un grand groupe. '$ ('# draw_pic')' ... '$ ('# stoparea')' ... ou '$ ('# draw_pic, #stoparea')' – Fenton

+0

Je suis vraiment désolé pour mon noobisme, permet-il être 'var value = $ ('# draw_pic, draw_more')' Et puis avoir un if si else pour voir quelle valeur (id) est utilisée? – WeeklyDad

2

Jquery sélecteur d'attribut comme suit:

$("a[href=xxxx]"); 

Mis à jour ans pour commenter: utiliser cette

$("a:contains('My Text')") 

pour l'utilisation en fonction

function onclickofa(e) { 
    value = $(e.target).text(); 
    if (value == "value1") { 
     self.doSomething1(); 
    } 
    else if (value == "value2") { 
     self.doSomething2(); 
    } 
} 

<a href="#" onclick="onclickofa()">value1</a> 
<a href="#" onclick="onclickofa()">value2</a> 
+0

Mais tout mon href est mis à #, est-il possible d'utiliser la valeur à l'intérieur d'un ? Juste comme je l'ai fait pour l'autre fonction. – WeeklyDad

+0

Mis à jour ma réponse – Sandeep

+0

Mais cela verrouille ma valeur à un certain "texte", je veux qu'il regarde lequel de ces 2 éléments, soit draw_pic ou draw_other. C'est pourquoi j'ai une fonction qui est appelée quand on clique dessus, et il semble quelle valeur il utilise dans l'entrée, je veux exactement le même, mais plutôt regarder à l'intérieur d'un et son id = « valeur1 » – WeeklyDad

1

Le lien se trouve dans les états suivants:

a:link 
a:visited 
a:hover 
a:active 

Peut-être est ce que vous avez besoin:

$("a[href=xxxx]:visited"); 

Si vous devez lier la fonction avec elle utiliser bind

+0

Ceux-ci le verrouille à un certain href qui est toujours #. J'ai besoin d'être réglé sur l'ID du à la place. – WeeklyDad

+0

Ceci définit la valeur, je veux qu'elle soit définie de manière dynamique en fonction du qui a été pressé. – WeeklyDad

+0

@SteveFenton a écrit ce dont vous avez besoin, utilisez-le. –

1
$("a").each(function(){ 
    var $a = $(this); 
    var href = $a.attr("href"); 
    switch(href) 
    { case '#': 
      alert("#!"); 
     break; 
     case "/": 
      // special click for home 
      $a.click(function(e){ 
       alert("hello home"); 
       e.preventDefault(); 
      }); 

      // patch href in this case 
      $a.attr("href","/index"); 
     break; 
     default: 
      alert("href:"+href); 
     break; 
    } 
}); 
+0

et pour le support cliquez, remplacez "chaque" par "cliquez" – r043v

+0

édité pour placer l'événement de clic spécial et l'action en fonction de la valeur href – r043v

1
$('a').click(function(e){ 
    if(this.id === "drawpic"){ 
     // do something1 
    } 
    else{ 
     // do something2 
    } 
});