2009-08-15 6 views
1

J'ai déjà beaucoup cherché, mais il semble que cela ne fonctionne pas. Au programme, il existe une fonction jquery ready pour rediriger l'événement click vers le programme.Est-il possible d'arrêter la redirection vers une autre page de liens?

if($.isFunction(link.attr('onclick'))){link.click();return false;} 
else{document.location.href=link.attr('href');} 

donc dans le lien hypertexte, il y a 2 événements peuvent rendre cette page redirection vers la page nouvelle, on est <a href="aaa">Link1</a> l'autre événement onclick (désolé, je suis encore confus qui exécute d'abord).

Malheureusement, je ne peux pas supprimer le code jquery ... donc je peux seulement ajouter du nouveau code.

Je veux ouvrir une nouvelle fenêtre au lieu de rediriger, mais comment puis-je arrêter de rediriger l'action?

Répondre

1

Je ne comprends pas, que voulez-vous dire par "seulement ajouter un nouveau code"? Si cela signifie que vous ne pouvez pas modifier le gestionnaire onclick ou le code ci-dessus, la solution est la suivante:

Identifiez le lien dont vous souhaitez modifier le comportement, supprimez le gestionnaire onclick.

$(".someClass a").unbind('click'); 

Ajouter nouveau gestionnaire onclick:

$('.someclass a').bind(function(e){ 
    var url = $(e.target).attr('href'); 
    window.open(url, 'width=200'); 
})); 

Tout ce code doit être exécuté lorsque les charges de page et tous les liens que vous souhaitez remplacer sont en DOM.

$(document).ready(function(){ 

    //unbind links ... 
    $(".someClass a").unbind('click'); 
    //bind with changed onclick handler 
    $('.someclass a').bind(function(e){ 
     var url = $(e.target).attr('href'); 
     window.open(url, 'width=200'); 
    })); 

}); 
0

Si je comprends bien, ce bloc jQuery est d'exécuter uniquement le onclick si l'on existe sinon il simule un clic de lien hypertexte normal.

Donc, si vous voulez qu'il vient d'ouvrir dans une nouvelle fenêtre et vous ne pouvez pas changer le jQuery une option serait d'ajouter un événement onclick:

<a href="aaa" onclick="window.open(this.href);return false;">Link1</a> 

Cela devrait exécuter comme ouvert onclick dans une nouvelle fenêtre

0

Merci pour toute aide.

Je ne peux pas supprimer la fonction de redirection jquery parce que la politique ... le programme précédent fera une page de redirection de clic ou de lien hypertexte dans parent ..mais certaines pages doivent être changées pour ouvrir dans une nouvelle fenêtre.

laissez-moi vous expliquer en détail

Il existe deux types de lien texte

<tr><td>first</td><td><a href="aaa">link1</a></td><td>3rd</td></tr> 
<tr><td>first</td><td><a href="aaa" onclick="fun1()">link2</a></td><td>3rd</td></tr> 

je ne peux pas comprendre pourquoi ils écrivent comme ça ... mais désolé je ne peux pas changer tout html

Je ne peux faire est de joindre la nouvelle fonction ....

donc si l'utilisateur directement cliquez sur le texte de lien hypertexte, il est facile pour moi, je peux ajouter à la cible _blank. mais nous avons aussi la fonction d'événement changer l'utilisateur de l'événement de la page déplacer la souris à l'enregistrement et cliquez sur. peut également rediriger une nouvelle page. C'est pourquoi cette fonctionnalité ...

if($.isFunction(link.attr('onclick'))){link.click();return false;} // I regard it for onclick function 
else{document.location.href=link.attr('href');} // it's for tag click.. 

alors je peux vous dire qu'il y a 3 façons de changer de page.

  1. Cliquez directement sur le lien de texte sans cliquer sur la fonction d'événement.

  2. cliquez sur la même ligne de zone de tag.

  3. Cliquez sur le lien de texte mais avec la fonction onclick. qui est le programme que je sais maintenant ....

fonction js So..before Je peux ajouter un code pour modifier l'événement page. Je veux faire est la fenêtre parente est la même .. pas recharger.et quand cliquez sur une zone peut ouvrir la page Web dans une nouvelle fenêtre.

Questions connexes