我正在尝试将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,但如果你们都知道怎么做这个工作请告诉我....我很绝望!!! :(谢谢,希望你们都有一个美好的一周。
答案 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()
调用该函数。你会发现它更清洁,更容易维护:)