hotkeys: refactor to use .on(), namespaces.

* Use .on() instead of .bind() because bind is deprecated in jquery 3.0.
* Ensure enable-js-navigation is always respected.
* Namespace keybindings so they may be disabled by userscripts with
  e.g. $(document).off("keydown.danbooru") or $(document).off("next_page").
This commit is contained in:
evazion
2017-01-24 00:19:38 -06:00
parent 6430a9b0a4
commit c3fa653fc5
10 changed files with 61 additions and 85 deletions

View File

@@ -1,41 +1,36 @@
(function() {
Danbooru.PostPopular = {};
Danbooru.PostPopular.nav_prev = function() {
Danbooru.PostPopular.nav_prev = function(e) {
if ($("#popular-nav-links").length) {
var href = $("#popular-nav-links a[rel=prev]").attr("href");
if (href) {
location.href = href;
}
}
e.preventDefault();
}
Danbooru.PostPopular.nav_next = function() {
Danbooru.PostPopular.nav_next = function(e) {
if ($("#popular-nav-links").length) {
var href = $("#popular-nav-links a[rel=next]").attr("href");
if (href) {
location.href = href;
}
}
e.preventDefault();
}
Danbooru.PostPopular.initialize_all = function() {
if ($("#c-explore-posts").length) {
if (Danbooru.meta("enable-js-navigation") === "true") {
$(document).bind("keydown", "a", function(e) {
Danbooru.PostPopular.nav_prev();
e.preventDefault();
});
$(document).bind("keydown", "d", function(e) {
Danbooru.PostPopular.nav_next();
e.preventDefault();
});
}
Danbooru.keydown("a", "prev_page", Danbooru.PostPopular.nav_prev);
Danbooru.keydown("d", "next_page", Danbooru.PostPopular.nav_next);
}
}
})();
$(document).ready(function() {
Danbooru.PostPopular.initialize_all();
});
});