2013-10-04 40 views
0

我一直在寻找一个好几个小时的答案现在,所以我不得不诉诸于此来寻求一些帮助。JavaScript,关闭标签当你打开另一个

问题:我有几个href标签,打开地图或列表取决于您点击哪个标签,我的问题是,我需要将地图设置为默认打开,当您单击上市标签,地图关闭和打开列表(基本上当你点击一个,另一个关闭,反之亦然)。

这里是我的代码

HTML:

<div class="clearfix"></div> 
<a class="sortby"> 
    SORT BY 
</a> 
<a class="sortby_town" href="javascript:showDiv()"> 
    MAP 
</a> 
<a class="sortby_category" href="javascript:showListings()"> 
    LISTINGS 
</a> 

<div id="townmap" style="display: none; margin-top: 60px;"> 
{loadposition sawbridgeworth} 
</div> 

<div id="townlistings" style="display: none; margin-top: 60px;"> 
{component url='index.php?Itemid=132&option=com_mtree&task=search&searchword=Sawbridgeworth&cat_id=0'} 
</div> 

的JavaScript:

function showDiv() { 
document.getElementById('townmap').style.display = "block"; 
} 

function showListings() { 
document.getElementById('townlistings').style.display = "block"; 
} 

任何帮助,将不胜感激!提前致谢!

回答

1

你试过jQuery Tabs

这是一个很好的插件,它会为您提供您尝试创建的功能。

然而,看着你的代码,你为什么不简单地在那里有一行来隐藏其他的div?

function showDiv() { 
    document.getElementById('townmap').style.display = "block"; 
    document.getElementById('townlistings').style.display = "none"; 
} 

function showListings() { 
    document.getElementById('townlistings').style.display = "block"; 
    document.getElementById('townmap').style.display = "none"; 
} 

Diplay="none"将隐藏div。或者,如果您使用的是jQuery(如您的标签所示),您可以尝试以下操作:

function showDiv() { 
    $('#townmap').show(); 
    $('#townlistings').hide(); 
} 

function showListings() { 
    $('#townlistings').show(); 
    $('#townmap').hide(); 
} 
+0

此作品!我不知道为什么我没有想到使用jQuery哈哈,我想我只是拉了一个完整的愚蠢的时刻和复杂的事情!非常感谢你! –

0

尝试使用element.style.display =“无”

function showDiv() { 
document.getElementById('townmap').style.display = "block"; 
document.getElementById('townlistings').style.display = "none"; 
} 

function showListings() { 
document.getElementById('townlistings').style.display = "block"; 
document.getElementById('townmap').style.display = "none"; 
} 

要在地图页面加载时,你可以将一个函数的文档,一旦页面将执行加载

document.attachEvent("onreadystatechange", function(){ 
    this.getElementById('townmap').style.display = "block"; 
}); 

我总是建议使用jQuery而不是纯粹的JavaScript。你应该考虑它,如果你以前没有,因为你会发现大多数东西将采取比你现在做的方式少得多的脚本