Je suis un novice complet chez JQuery et Javascript. J’espérais que vous pourriez m’aider à résoudre mon problème.
J’utilise les tabs JQuery 1.7.2 et JQuery-ui 1.10.3.
À partir d’une URL externe, je souhaite pouvoir créer un lien vers une ancre située dans un onglet JQuery. Toutefois, le nom de l’onglet lui-même est également une ancre.
Je sais comment activer l’onglet dans lequel se trouve l’ancre
eg http://mysite.com/#tab-1
mais où vais-je à partir de là?
Comment spécifier l’ancre à laquelle je souhaite créer un lien située dans l’onglet 1 à partir d’une URL?
eg http://mysite.com/#tab-1#myanchor
Voici le HTML
Untitled Document $(function() {var tabs = $( "#tabs" ).tabs(); tabs.find( ".ui-tabs-nav" ).sortable( {axis: "x", stop: function() {tabs.tabs( "refresh" ); } } ); } ); 1st Tab
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas at dui tempor, adipiscing nisl id, tempus nisi. Donec posuere pulvinar lacus, non suscipit eros ulsortingces.
2nd Tab
Suspendisse lacus mi, ornare quis nulla eget, commodo auctor arcu. Proin ut erat vestibulum, vestibulum odio sit amet, dapibus nisi. Morbi nec semper mi.
3rd Tab
Proin ullamcorper ornare ulsortingcies. Morbi bibendum mauris eu purus rhoncus, id lacinia sapien placerat. Nunc euismod lectus eu elit accumsan dignissim.
Anchor is here
Toute aide serait grandement appréciée. Merci
J’ai trouvé ça, est-ce que cela peut vous être utile?
J’ai réussi à le faire fonctionner moi-même en fournissant à la fois le nom de l’onglet et le nom de l’ancre dans l’URL, puis en l’analysant avec javascript.
Après cela, j’ai ensuite transmis le numéro d’onglet à jquery pour l’ouvrir et j’ai fait un simple défilement animé jusqu’à l’ancre.
Par exemple, l’URL est http: // www. mysite.com # tab-3 & # myanchor javascript is
$(document).ready(function(){ var hash_parts = location.hash.split('&', 2); //2 - limit, may be changed if more than two arguments. var tab = hash_parts[0]; // Tab number part of url. Array starts at 0 for 1st element. var anc = hash_parts[1]; // Anchor name. var tabId = tab.split("-").pop()-1; // Tab no. relating to Jquery ui index no. (starts at zero for tab 1.) $("#tabs").tabs("option", "active", tabId); // Select the tab. $('html, body').animate({'scrollTop': $(anc).offset().top}, 1000); // Animated scroll to anchor. });
Ceci utilise JQuery UI 1.10.3 et JQuery 1.7.2
Pour résoudre un problème à l’aide d’un périphérique mobile, le deuxième numéro devient parfois% 23.
Pour corriger l’erreur, vous appendiez cette ligne au-dessus de la dernière ligne:
if(anc !== ''){ anc = anc.replace('%23', '#'); }