Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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
当用户使用JQuery访问哈希链接(#某物)时,如何运行JavaScript函数?_Javascript_Jquery_Hyperlink_Fragment Identifier_Hashchange - Fatal编程技术网

当用户使用JQuery访问哈希链接(#某物)时,如何运行JavaScript函数?

当用户使用JQuery访问哈希链接(#某物)时,如何运行JavaScript函数?,javascript,jquery,hyperlink,fragment-identifier,hashchange,Javascript,Jquery,Hyperlink,Fragment Identifier,Hashchange,我在http://example.com/app如果用户正在访问http://example/app#add-项目 有没有任何方法可以使用jQuery脚本添加此功能 我当前的jQuery脚本已经具有如下结构: $(document).ready( function() { $('#search').keyup( function() { ... } ); } ) $(document).ready( functio

我在
http://example.com/app
如果用户正在访问
http://example/app#add-项目

有没有任何方法可以使用jQuery脚本添加此功能

我当前的jQuery脚本已经具有如下结构:

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

        $('#add-item').visit( // .visit probably doesn't exist
            function() { content.innerHTML = myForm; }
        );
    }
)
如何使用以下内容显示表单:

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

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

以下是我所做的:

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

以下是我所做的:

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

可以使用
hashchange
事件,如所示。

可以使用
hashchange
事件,如所示

我假设您有一个id为“content”的元素,您希望在其中显示表单


我假设您有一个id为“content”的元素,您想在其中显示表单。

+1-只是一个小的吹毛求疵;如果(hash){//,因为空字符串==falsy}可以保存有价值的字节。@karim79,
hash.length
不也需要同样的时间吗?如果url是:
example.com/#
,这也说明了这不是关于性能,而是关于更小的占用空间(但再次强调,这只是一个挑剔的问题!),因为你要用零替换哈希字符,你评论中的示例url应该仍然会产生错误的结果。@karim——拿走,而不是我的鼻子+1——只是一个小挑剔;如果(hash){//,因为空字符串==falsy}可以保存有价值的字节。@karim79,
hash.length
不也需要同样的时间吗?如果url是:
example.com/#
,这也说明了这与性能无关,而是与较小的占用空间有关(但同样,这只是一个吹毛求疵的问题):)因为您将哈希字符替换为零,所以注释中的示例url仍然会产生错误的结果。@karim--pick-away,只是不是我的鼻子,但这只在用户单击
#add item
链接时有效,而不是在用户访问该url时有效,或者我错了吗?是的,如果是这种情况,您需要检查页面的hash,on onload事件。这已经得到了回答。但只有当用户单击
#add item
链接时,这才起作用,而不是当用户访问该url时,或者我错了吗?是的,如果是这种情况,您需要检查页面的加载事件时的哈希。这已经得到了回答。