Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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函数_Javascript_Jquery_Codeigniter - Fatal编程技术网

跳转到页面部分并执行javascript函数

跳转到页面部分并执行javascript函数,javascript,jquery,codeigniter,Javascript,Jquery,Codeigniter,我正在尝试使用Codeigniter+Smarty+javascript创建一个FAQ页面 此代码: $(document).ready(function() { $('dd').hide(); $('dt').click(function(){ $(this).next('dd').slideToggle('slow'); }); $('a.close').click(function (){ $(this).parent('dd').

我正在尝试使用Codeigniter+Smarty+javascript创建一个FAQ页面

此代码:

$(document).ready(function() {
    $('dd').hide(); 

    $('dt').click(function(){ 
        $(this).next('dd').slideToggle('slow'); 
    });

    $('a.close').click(function (){ $(this).parent('dd').slideUp('slow'); });
 }); 
我的.tpl文件类似于

<dl>
    <dt>Question one</dt>
    <dd>Answer to question one</dd>
</dl>

问题一
对问题一的答复
我试图让页面跳转到一些基于url的问题。例如:
www.example.com/faq#q11
跳到问题11。我使用
来实现这一点,但我现在有其他问题。当我输入url时问题就会打开,我的意思是如果我真的进入
www.example.com/faq#q11
浏览器会带我进入问题,但我必须单击它来切换答案


我希望当我输入某个问题的URL时,它会自动切换该答案。

这是您的就绪功能:

if(window.location.hash)
    {
        //set the value as a variable, and remove the #
        var hash_value = window.location.hash.replace('#', '');
        //something like $('#'+hash_value).toggle();
    }

编辑:未测试,但您可能可以使用
$(window.location.hash)
,因为
window.location.hash
已包含ID选择器。

请将此函数放入就绪状态:

if(window.location.hash)
    {
        //set the value as a variable, and remove the #
        var hash_value = window.location.hash.replace('#', '');
        //something like $('#'+hash_value).toggle();
    }

编辑:未测试,但您可能可以使用
$(window.location.hash)
,因为
window.location.hash
已经包含了ID选择器。

这通常是使用route services\modules完成的,而且很多MVC框架都内置了route services

如果您选择在没有第三方库的情况下完成此操作,您可以在DOMReady上创建一个简单的路由器功能来处理网站的路由:

function ifRoute( Hashtag, Callback ){
    if (window.location.hash.indexOf( Hashtag ) != -1)
        Callback();
}
然后,在DOMReady上,您可以这样使用:

jQuery(document).ready(function(){
    ifRoute( 'q11', function(){
        //show answer...
        //do other cool stuff...
    });
});

这是一个非常简单的例子,只会对DOMReady有所帮助-但我希望这足以帮助您,至少能为您指明正确的方向。

这通常是使用route services\modules完成的,而且很多MVC框架都内置了route services

如果您选择在没有第三方库的情况下完成此操作,您可以在DOMReady上创建一个简单的路由器功能来处理网站的路由:

function ifRoute( Hashtag, Callback ){
    if (window.location.hash.indexOf( Hashtag ) != -1)
        Callback();
}
然后,在DOMReady上,您可以这样使用:

jQuery(document).ready(function(){
    ifRoute( 'q11', function(){
        //show answer...
        //do other cool stuff...
    });
});

这是一个非常简单的示例,只对DOMReady有帮助-但我希望这足以帮助您,至少能为您指明正确的方向。

工作非常完美,但我更改了$('#'+hash_value).toggle();按$(“#”+哈希值)。单击();我很高兴它对你有用。我没有给你完整的代码,因为我不想鼓励你用勺子喂食。顺便说一句,下次你有问题的时候,先在谷歌上搜索。这可能比写问题还要快:)@user2759595-如果这个答案满足您的问题,请使用旁边的绿色复选标记来选择它。它已经标记好了,我在google和Stackoverflow中搜索了大约20分钟,但什么也没找到,也许我的搜索词并不完美,但是我更改了$('#'+哈希值).toggle();按$(“#”+哈希值)。单击();我很高兴它对你有用。我没有给你完整的代码,因为我不想鼓励你用勺子喂食。顺便说一句,下次你有问题的时候,先在谷歌上搜索。这可能比写问题还要快:)@user2759595-如果这个答案满足你的问题,请用旁边的绿色复选标记来表示。它已经标记好了,我在google和Stackoverflow中搜索了大约20分钟,但什么也没找到,也许我的搜索词不正确