IE 8没有正确执行JQUERY slideDown / Up()

时间:2010-01-14 20:51:35

标签: jquery

我正在尝试将jquery函数应用于下拉菜单,由于某种原因,它只适用于Firefox 3.5.7。下面是下拉菜单的HTML:

<select name="Delivery" id="Delivery" class="pulldown" tabindex="24">
    <option id="pick_up" value="Pick up">Pick up</option>
    <option id="mail" value="First Class Mail">First Class Mail</option>
    <option id="fax_mail" value="Fax and Mail">Fax and Mail</option>
    <option id="fedex" value="FedEx">FedEx</option>
</select>

这是上面的jquery:

$(document).ready(function() {
$("#mail").click(function() {
$("#rec_address").slideDown("slow");
$("#faxnumber").slideUp("slow");
$("#pmtmethod").slideUp("slow");
    }
);
});

$(document).ready(function() {
$("#fax_mail").click(function() {
$("#faxnumber").slideDown("slow")
$("#rec_address").slideDown("slow");
$("#pmtmethod").slideUp("slow");
    }
);
});

$(document).ready(function() {
$("#fedex").click(function() {
$("#pmtmethod").slideDown("slow")
$("#rec_address").slideDown("slow");
$("#faxnumber").slideUp("slow");
    }
);
});

$(document).ready(function() {
$("#pick_up").click(function() {
$("#pmtmethod").slideUp("slow")
$("#rec_address").slideUp("slow");
$("#faxnumber").slideUp("slow");
    }
);
});

以上JQUERY与Firefox的效果非常好,但与任何其他浏览器完全不兼容。我只关心IE,但如果你们都知道怎么做这个工作请告诉我....我很绝望!!! :(谢谢,希望你们都有一个美好的一周。

2 个答案:

答案 0 :(得分:1)

尝试使用“更改”而不是“点击”

$(document).ready(function() {
    $("#Delivery").change(function(){
        var $option = $(":selected", this);
        if ($option.attr("id") == "pick_up")
            ShowPickUp();
        else if ...

    });
});

function ShowPickUp()
{
    $("#pmtmethod").slideUp("slow")
    $("#rec_address").slideUp("slow");
    $("#faxnumber").slideUp("slow");

}

function ShowMail()
{
    //
}

function ShowFax()
{
    //
}

函数ShowFedex() {     // }

答案 1 :(得分:0)

我不知道这是否能解决你的问题(也许是Hunter的解决方案),但这只是对你的jQuery的评论。看起来你正在滥用$(document).ready()功能。您可以将所有.click()事件绑定放入单个$(document).ready()函数中,或将所有绑定放入另一个函数中,例如function BindEvents(),然后从$(document).ready()调用该函数。你会发现它更清洁,更容易维护:)