jQuery:在toggleClass函数中切换属性

时间:2014-03-22 01:11:16

标签: javascript jquery attributes toggle

我正在尝试将一个属性添加到搜索字段只有当它可见时,所以我有以下代码来a)最初隐藏搜索表单,b)切换可见性和c)当表单被赋予类“焦点”(例如,可见)时,向表单的输入添加或删除属性“autofocus”。 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)的锚点。为了最大限度地减少用户点击次数,如果可以将“自动对焦”属性添加到输入中(具有类“搜索字段”,类型为“搜索”,仅用于说明),当表单可见时,这样会很好它总是不能到位(这与标签浏览混淆,因为表格最初是隐藏的)。所以,任何有助于解决问题的建设性指针都是最受欢迎的。感谢。

1 个答案:

答案 0 :(得分:0)

该功能应该是

.attr('autofocus','autofocus') 

而不是

.addAttr('autofocus');

它不起作用的原因是每个属性都需要有一个值,即使它是空的