Javascript 单击按钮时触发hashchange事件
每当单击按钮或发生哈希更改事件时,我都要调用相同的操作。即使hash changed事件意味着第一次加载页面并重定向到类似#某物的内容 到目前为止,我的代码基本上是重复的。hashchange事件和单击按钮的代码相同。我正在寻找一种解决方案,不复制代码,而是从单击按钮的事件调用hashchange事件。这是到目前为止我的代码 main.jsJavascript 单击按钮时触发hashchange事件,javascript,jquery,Javascript,Jquery,每当单击按钮或发生哈希更改事件时,我都要调用相同的操作。即使hash changed事件意味着第一次加载页面并重定向到类似#某物的内容 到目前为止,我的代码基本上是重复的。hashchange事件和单击按钮的代码相同。我正在寻找一种解决方案,不复制代码,而是从单击按钮的事件调用hashchange事件。这是到目前为止我的代码 main.js $(window).bind('hashchange', function() { // get User from the URL va
$(window).bind('hashchange', function() {
// get User from the URL
var user = window.location.hash.substr(1);
// update the value in a text input with new ASIN
document.getElementById('asin_input').value = asin;
$.getJSON("/api/user/"+user, function (data) {
// ...
});
}).trigger('hashchange');
/*
* Whenever a button "Search!" is clicked, this function gets called.
*/
element.addEventListener('click', function () {
var user = $('#user_input').val();
$.getJSON("/api/user/"+user, function (data) {
// ...
});
});
现在,getJSON中的整个内容(包括getJSON)都是重复的,所以我只希望onClick调用/触发hashchange,它触发getJSON。如何做到这一点?将其放在自己的函数中,并从两个处理程序中调用该函数?是的,但最好是让一个处理程序调用另一个处理程序。在单击函数中使用
$(window)。trigger('hashchange')
。“从jQuery 3.0开始,.bind()已被弃用。”只是为了将来的参考,您可能希望切换到()上的
将其放在自己的函数中,并从两个处理程序内部调用该函数?是的,但最好只有一个处理程序调用另一个处理程序。在单击函数中使用$(窗口)。trigger('hashchange')
。“从jQuery 3.0开始,.bind()已被弃用。”仅供将来参考,您可能需要切换到()上的