跳转到页面部分并执行javascript函数
我正在尝试使用Codeigniter+Smarty+javascript创建一个FAQ页面 此代码:跳转到页面部分并执行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').
$(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分钟,但什么也没找到,也许我的搜索词不正确