Skip to content

Instantly share code, notes, and snippets.

@michael-milette
Last active October 5, 2020 15:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save michael-milette/3a5cd274dd7329ccca070ef1c372f631 to your computer and use it in GitHub Desktop.
Save michael-milette/3a5cd274dd7329ccca070ef1c372f631 to your computer and use it in GitHub Desktop.
/**
* Enables scrolling to a class instead of an ID for applications like Moodle that use YUI.
* YUI often litters your HTML code adding what appears to be random ID's for every element. This means that you can't
* actually use ID's in your HTML, and hence, cannot create in-page links. This solves that problem.
* Usage:
* 1) Add this code to your web page.
* 2) Add a class called goto-WhatEverYouWant such as class="goto-section5" to an element.
* 3) When you load the page, any classes starting with goto- will become an ID for that element.
* This will enable you to create in-page links such as <a href="#section5">Section 5</a>
* Consider combining this with the optional smooth scrolling Gist for a nice touch.
* Requires: jQuery
* @Copyright 2016-2018 TNG Consulting Inc. GPLv3+ license.
*/
jQuery( document ).ready(function() {
// Get elements that include a class that starts with prefix.
var prefix='goto-';
jQuery("[class*='" + prefix + "']").each(function() {
// More than one class? Find the matching one for each element.
var classList = this.className.split(/\s+/);
var thisClass = jQuery.grep(classList, function(item, index) {
return item.indexOf(prefix) === 0;
});
// Remove the class name from the element and set the element id but without the prefix.
jQuery(this).removeClass(thisClass[0]).prop("id", thisClass[0].slice(prefix.length));
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment