1

我正在自学 jQuery,并在尝试解决这个问题时很开心。如果需要,我正在使用slideDownandslideUp函数让不同<div>的 ' 出现和消失。但我的问题在于移除。我可以让不同的选定选项分别出现,但是,如果<div>当我尝试仅删除其中一个时两个 ' 都显示,则两个 '<div>都会<div>快速闪烁然后都消失。当只有一个<div>'s 也显示时,也会发生这种情况。我点击删除链接,两者<div>的快速闪烁然后消失。我真的不知道为什么。此代码背后的想法是允许用户根据需要添加和删除。如果选择错误,用户将能够将其删除,而之前选择的其他选择保持可见。这是我的代码:

<div class="type-select" style="width:400px;">
<select name="selectStatus">
<option selected value="Select">Select...</option>
<option id="login">Login</option>
<option id="nav">Navigation</option>
</select></div>
<div id="loginselect"><img src="http://triplemsystems.ekkosolutions.com/images/global/bg-loginPages.gif" height="47" width="162" />
<a id="remove" href="">Remove</a></div>
<div id="navselect"><img src="http://triplemsystems.ekkosolutions.com/images/global/bg-navMain.gif" height="45" width="90"/>
<a id="removenav" href="">Remove</a></div>
<script>
$("#loginselect").hide("fast");
$("select").change(function(){
    if($("#login").is(":selected")){ 
        $("#loginselect").slideDown("slow");}
});
$("#remove").click(function() {
    $("#loginselect").slideUp("slow");
});

$("#navselect").hide("fast");
$("select").change(function () {
    if($("#nav").is(":selected")){
        $("#navselect").slideDown("slow");}
});

$("#removenav").click(function() {
    $("#navselect").slideUp("slow");});

</script>

我是否走在正确的道路上?

4

1 回答 1

1

您走在正确的道路上,我认为问题在于您没有阻止链接的默认操作,因此页面正在刷新(导致您看到divs 一秒钟)。您可以通过接受event参数并调用.preventDefault()它来阻止链接的默认操作,即:

$("#remove").click(function(e) {
    e.preventDefault();
    $("#loginselect").slideUp("slow");
});

它在这里工作:http: //jsfiddle.net/XzDzb/

于 2011-06-29T22:45:36.297 回答