diff options
| author | Teddy Wing | 2015-08-01 18:51:44 -0400 | 
|---|---|---|
| committer | Teddy Wing | 2015-08-01 18:53:44 -0400 | 
| commit | eb38cdeebc31db8ca85d0303c5588e8c0a96b37c (patch) | |
| tree | fa13761e713b5e8e4c956e5257bb7a588a70e9f2 | |
| parent | 54b0fcdb81e5b2788f5146b321e516f72c51b708 (diff) | |
| download | jira-whozits-eb38cdeebc31db8ca85d0303c5588e8c0a96b37c.tar.bz2 | |
main.js: Wait until headers are on the page before acting
Don't set ids for the page headers until those headers are available on
the page.
| -rw-r--r-- | main.js | 33 | 
1 files changed, 28 insertions, 5 deletions
| @@ -1,16 +1,39 @@  (function() {  	var jira_person_header_class_name = '.ghx-heading'; +	var person_headers;  	// Removes spaces from a string  	function slugify (str) {  		return str.replace(/ /g, '');  	} -	Array.prototype.forEach.call( -		document.querySelectorAll(jira_person_header_class_name), -		function(element) { -			element.setAttribute('id', slugify(element.firstChild.textContent)); -			console.log(element); +	function do_when (when, action) { +		var timeout; +		 +		window.clearTimeout(timeout); +		 +		if (when()) { +			action(); +		} +		else { +			timeout = window.setTimeout(function() { +				do_when(when, action) +			}, 500); +		} +	} +	 +	do_when( +		function() { +			person_headers = document.querySelectorAll(jira_person_header_class_name); +			return person_headers.length; +		}, +		function () { +			Array.prototype.forEach.call( +				person_headers, +				function(element) { +					element.setAttribute('id', slugify(element.firstChild.textContent)); +				} +			);  		}  	);  })(); | 
