Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮时触发hashchange事件_Javascript_Jquery - Fatal编程技术网

Javascript 单击按钮时触发hashchange事件

Javascript 单击按钮时触发hashchange事件,javascript,jquery,Javascript,Jquery,每当单击按钮或发生哈希更改事件时,我都要调用相同的操作。即使hash changed事件意味着第一次加载页面并重定向到类似#某物的内容 到目前为止,我的代码基本上是重复的。hashchange事件和单击按钮的代码相同。我正在寻找一种解决方案,不复制代码,而是从单击按钮的事件调用hashchange事件。这是到目前为止我的代码 main.js $(window).bind('hashchange', function() { // get User from the URL va

每当单击按钮或发生哈希更改事件时,我都要调用相同的操作。即使hash changed事件意味着第一次加载页面并重定向到类似#某物的内容

到目前为止,我的代码基本上是重复的。hashchange事件和单击按钮的代码相同。我正在寻找一种解决方案,不复制代码,而是从单击按钮的事件调用hashchange事件。这是到目前为止我的代码

main.js

$(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()已被弃用。”仅供将来参考,您可能需要切换到()上的