隐藏选择框中选定的选项

发布于 2024-11-02 09:09:05 字数 1194 浏览 1 评论 0原文

我注意到 form select 元素和 jQuery .fadeOut / .hide 的奇怪行为

有简单的 select 框:

<select name="categories">
  <optgroup label="Choose option:">
    <option selected="selected" value="placeholder">CHOOSE OPTION</option>
    <option value="category-books">Books</option>
    <option value="category-music">Music</option>
  </optgroup>
</select>

我 使用 jQuery,当用户使用以下代码单击 select 时,我想删除 option:selected (我在这种框中模拟占位符的方式):

$('select').click(function() {
    $('option[value=placeholder]').fadeOut('slow');
});

$('select').blur(function(){
    $('option[value=placeholder]').fadeIn('slow');
});

此代码在 Firefox 中有效并且 <强>选项点击后平滑淡出,但在其他浏览器(IE9,Opera,Chrome)中这不起作用:-[在这里你可以检查一下:http://jsfiddle.net/cachaito/Xy7DF/3/

我尝试了.remove(有效)并且< strong>.hide (不)但我想要一个动画来隐藏这个元素...

PS。您是否知道当用户离开 select 框时淡入 option 元素的更好方法(焦点与 .blur 的工作方式相同)?

I noticed strange behaviour with form select element and jQuery .fadeOut / .hide

I have simple select box:

<select name="categories">
  <optgroup label="Choose option:">
    <option selected="selected" value="placeholder">CHOOSE OPTION</option>
    <option value="category-books">Books</option>
    <option value="category-music">Music</option>
  </optgroup>
</select>

And with jQuery I wanted to remove option:selected (my way to emulate placeholder in this kind of box) when user click select with this code:

$('select').click(function() {
    $('option[value=placeholder]').fadeOut('slow');
});

$('select').blur(function(){
    $('option[value=placeholder]').fadeIn('slow');
});

This code in Firefox works and option smoothly fades out after is clicked, but in other bowsers (IE9, Opera, Chrome) this does'nt work :-[ Here You can check this out: http://jsfiddle.net/cachaito/Xy7DF/3/

I tried .remove (works) and .hide (doesn't) but I wanted an animation to hide this element...

PS. Do You know better way to fadeIn option element when user leaves select box (focusout works the same way like .blur)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风情万种。 2024-11-09 09:09:05

尝试更改

$('option[value=placeholder]').fadeOut('slow')

$('option[value=placeholder]', this).fadeOut('slow')

就是我在代码中隐藏“选项”的做法

$('#mySelect option[value=' + myVal + ']').hide().siblings().show();

Try Changing

$('option[value=placeholder]').fadeOut('slow')

with

$('option[value=placeholder]', this).fadeOut('slow')

This is what I do in my code to hide an "option"

$('#mySelect option[value=' + myVal + ']').hide().siblings().show();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文