gpt4 book ai didi

javascript - jquery 和 javascript if...else 问题

转载 作者:行者123 更新时间:2023-11-29 17:30:07 25 4
gpt4 key购买 nike

一段时间以来,我一直在努力解决这个问题,但没有成功。

当单击导航栏或侧边栏链接时,我使用最简单的 jquery 和 ajax 将内容加载到我的页面中。我只是把它放在 document.ready 中:

$("#nav ul li a").click(function(){content_load($(this).attr('href'));return false;}); 

我的 content_load 函数是这样的:

function content_load(toLoad)
{
$('#content').hide('fast',loadContent);
function loadContent()
{
$('#content').load(toLoad,'',function(){showNewContent();tb_init('a.thickbox, area.thickbox, input.thickbox');});
}
function showNewContent()
{
$('#content').show('fast');
}
}

这行得通!

但是...当我在 function_load() 中放置简单的 if...else 语句而不是简单的 ajax 加载时,我会导航到我想使用 load() 函数加载的页面。就像“return false”被忽略了......

所以这是“破坏”一切的代码:

function content_load(toLoad)
{
if(toLoad=="content/page1.html") {//do something}
else
{
$('#content').hide('fast',loadContent);
function loadContent()
{
$('#content').load(toLoad,'',function(){showNewContent();tb_init('a.thickbox, area.thickbox, input.thickbox');});
}
function showNewContent()
{
$('#content').show('fast');
}
}
}

知道为什么吗???

谢谢! Newman

最佳答案

也许这是一个奇怪的范围问题。将函数放在 if...else 语句之外,或者更好的是,使用匿名函数:

function content_load(toLoad) {
if(toLoad=="content/page1.html") {
//do something
}
else {
$('#content').hide('fast', function() {
$(this).load(toLoad, function() {
$(this).show('fast');
tb_init('a.thickbox, area.thickbox, input.thickbox');
});
});
}
}

您被重定向到该页面意味着您的函数在某处出错。如果您的代码中有 //do something,您也应该检查它。

浏览器的错误控制台至少应该为您提供一些信息。


除了return false,您还可以调用事件对象的适当方法:

$("#nav ul li a").click(function(event){
// event.preventDefault(); <-- put here to always prevent reload,
// even on error (but should be avoided)
content_load(this.href);
event.preventDefault();
});

关于javascript - jquery 和 javascript if...else 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com