繁体   English   中英

jQuery:在toggleClass函数中切换属性

[英]jQuery: toggling attribute within a toggleClass function

我试图仅在可见时向搜索字段添加属性,所以我将以下代码用于:a)最初隐藏搜索表单,b)切换可见性,以及c)将属性“自动对焦”添加或删除到当表单被赋予类“焦点”(例如可见)时的表单输入。 a)和b)的代码按其应有的方式工作,c)是我对addAttr()的应有的设想,但是我并不真正了解Javascript,因此显然它不起作用。 问题是:如何使它起作用?

$("#searchwdgt").hide();
    $(function() {
        $('#show_search').click(function() {
            $('#show_search').toggleClass('active');
            $('#searchwdgt').toggleClass('focus').slideToggle(400);
            if($('#searchwdgt.focus')) {
                $('#searchwdgt input').addAttr('autofocus');
            } else {
                $('#searchwdgt input').removeAttr('autofocus');
            }
            return false;
        });
});

基本构造很简单。 #show_search是用户单击以获取搜索表单(#searchwdgt)的锚。 为了最大程度地减少用户单击的次数,最好在表单可见时将属性“自动对焦”添加到输入中(类为“ searchfield”,类型为“ search”,仅用于澄清),但用于UX它不能总是在适当的位置(由于表单最初是隐藏的,这与选项卡浏览很混乱)。 因此,非常欢迎任何可以帮助解决问题的建设性指针。 谢谢。

该功能应该是

.attr('autofocus','autofocus') 

代替

.addAttr('autofocus');

它不起作用的原因是每个属性都必须有一个值,即使它为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM