How to run a JavaScript function when the user is visiting an hash link (#something) using JQuery?

梦想与她 提交于 2020-01-14 04:52:07

问题


I have a webb application at http://example.com/app and I would like to show a form if the user is visiting http://example/app#add-item.

Is there any way I can use a jQuery script to add this functionallity?

My current jQuery script already has a structure like this:

$(document).ready(
    function() {
        $('#search').keyup(
            function() { ... }
        );
    }
)

How can I show a form using someting like this:

$(document).ready(
    function() {
        $('#search').keyup(
            function() { ... }
        );

        $('#add-item').visit( // .visit probably doesn't exist
            function() { content.innerHTML = myForm; }
        );
    }
)

回答1:


Here is something I do:

    var hash = (window.location.hash).replace('#', '');
    if (hash.length == 0) {
        //no hash
    }
    else {
        //use `hash`
        //example:
        if(hash == 'add-item'){
             //do something
        }
    }



回答2:


Might be able to use the hashchange event, as shown at http://benalman.com/projects/jquery-hashchange-plugin/.




回答3:


$(document).ready(
    function() {
        $('#search').keyup(
            function() { ... }
        );

        $('#add-item').click(
            function() { $("#content").html(myForm); }
        );
    }
);

I assume you have a element with id "content" where you want to display the form.



来源:https://stackoverflow.com/questions/6127799/how-to-run-a-javascript-function-when-the-user-is-visiting-an-hash-link-someth

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!