Javascript 简单jQuery隐藏/显示在IE中不起作用
我不明白为什么。看起来很容易。我的HTML是用HAML编写的。但如果你不知道HAML是什么,这很容易理解。我的HAML是这样写的:Javascript 简单jQuery隐藏/显示在IE中不起作用,javascript,jquery,internet-explorer,cross-browser,show-hide,Javascript,Jquery,Internet Explorer,Cross Browser,Show Hide,我不明白为什么。看起来很容易。我的HTML是用HAML编写的。但如果你不知道HAML是什么,这很容易理解。我的HAML是这样写的: $(document).ready(function () { $('#createGallery').hide(); $("#newGallery").click(function () { $("#createGallery").show('slow'); }); $("#gallerySelect > o
$(document).ready(function () {
$('#createGallery').hide();
$("#newGallery").click(function () {
$("#createGallery").show('slow');
});
$("#gallerySelect > option").not("#newGallery").click(function () {
$("#createGallery").hide('slow');
});
});
我不相信选项元素有点击事件。您需要将单击处理程序附加到SELECT元素,然后选中所选的选项\ (免责声明:空气编码)
我不相信选项元素有点击事件。您需要将单击处理程序附加到SELECT元素,然后选中所选的选项\ (免责声明:空气编码)
这将有助于获取当前页面的HTML,以及了解更多有关问题的信息
- 哪个版本的IE有问题
- 只是隐藏/显示#createGAllery不起作用,还是单击事件根本没有触发
- 什么是
警报($(“#gallerySelect>选项”)。而不是(“#newGallery”)。长度)代码>或
警报($(“#gallerySelect>选项”).length)代码>返回
- 哪个版本的IE有问题
- 只是隐藏/显示#createGAllery不起作用,还是单击事件根本没有触发
- 什么是
警报($(“#gallerySelect>选项”)。而不是(“#newGallery”)。长度)代码>或
警报($(“#gallerySelect>选项”).length)代码>返回
$(document).ready(function(){
$('#createGallery').hide();
$("#gallerySelect").click(function () {
if (this.options[this.selectedIndex].id == 'newGallery') {
$("#createGallery").show('slow');
} else {
$("#createGallery").hide('slow');
}
});
});
对于HAML,就像这样:
$(function(){
$("#gallerySelect").bind('change',function () {
if($(this).val() == 'newGallery') {
$("#createGallery").show('slow');
} else {
$("#createGallery").hide('slow');
}
});
});
所有选项元素都具有相同的值。。。这通常不是该元素的使用方式。此外,如果要立即隐藏元素,可以在HAML中设置它(当然,除非您希望非JS用户在默认情况下看到它)。如果你按照以下思路做一些事情,这会更有意义:
$(document).ready(function(){
$('#createGallery').hide();
$("#gallerySelect").click(function () {
if (this.options[this.selectedIndex].id == 'newGallery') {
$("#createGallery").show('slow');
} else {
$("#createGallery").hide('slow');
}
});
});
对于HAML,就像这样:
$(function(){
$("#gallerySelect").bind('change',function () {
if($(this).val() == 'newGallery') {
$("#createGallery").show('slow');
} else {
$("#createGallery").hide('slow');
}
});
});
它在其他浏览器中工作吗?你的标题暗示它是,但它不是明确的。它在其他浏览器中工作吗?你的标题暗示它有,但并不明确。是的,看起来你想要的是“更改”事件而不是单击。我同意“更改”而不是“单击”。。。当然,我不同意我的免责声明……=)@swilliams我测试了great_llama的代码,它在FF3、IE8和IE8中作为7工作。如果你仔细想想,这是有道理的。这是一个托管示例:可编辑via:Wow slick rick!非常感谢你,伟大的美洲驼。但是,如果单击或更改,则没有区别。或者至少,我看不出有什么区别。@如果使用“单击”事件,如果使用键盘更改所选选项,则不会调用“隐藏”和“显示”。是的,看起来您希望的是“更改”事件而不是单击。我同意“更改”而不是“单击”。。。当然,我不同意我的免责声明……=)@swilliams我测试了great_llama的代码,它在FF3、IE8和IE8中作为7工作。如果你仔细想想,这是有道理的。这是一个托管示例:可编辑via:Wow slick rick!非常感谢你,伟大的美洲驼。但是,如果单击或更改,则没有区别。或者至少,我看不出有什么区别。@如果使用“单击”事件,如果使用键盘更改所选选项,则不会调用“隐藏和显示”。