如何使下拉按钮默认文本保持不变?

时间:2014-07-29 07:06:24

标签: javascript jquery

我有一个带开关箭头的下拉按钮。该按钮的默认文本是"关闭"当点击按钮时,应该打开它,它应该改变它的内容(从"关闭"到"打开")和箭头。所有这些都发生在我点击按钮但是当我点击按钮并且其文本变为"打开"然后,如果我点击页面中的空白区域,它就会开始更改我的按钮文本,就像默认文本是"打开"。如何使我的按钮的默认文本始终保持"关闭&# 34;如果我点击一次按钮后点击页面中的空白区域?

这是我的代码

<div class="btn-group main_button_group">
<button type="button" class="btn btn-default dropdown-toggle main_btn" data-toggle="dropdown">
Closed
<span class="arrow_close"></span>
</button>
<ul class="dropdown-menu" role="menu">
    <li><a href="#">item 1</a>
    </li>
    <li><a href="#">item2</a>
    </li>
</ul>

CSS

.main_btn {
    -webkit-border-radius: 4px 4px 0 0;
    -moz-border-radius: 4px 4px 0 0;
    border-radius: 4px 4px 0 0;
    font-size: 16px;
    padding: 10px 55px 10px 24px;
    top:31px;
    right:-20px;
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    border:0 none;
}
.main_btn .arrow_close {
    background-image: url("../arrow_close.png");
    background-repeat: no-repeat;
    width: 10px;
    height: 22px;
    display: inline-block;
    position: absolute;
    right:25px;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
}
.main_btn .arrow_open {
    background-image: url("../arrow_open.png");
    background-repeat: no-repeat;
    width: 10px;
    height: 22px;
    display: inline-block;
    position: absolute;
    right:25px;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
}

jquery的

$(document).ready(function () {
    $("main_button_group button").click(function () {
        if ($(this).find('span').hasClass("arrow_close")) {
            $(this).find('span').addClass("arrow_open").removeClass("arrow_close");
        } else {
            $(this).find('span').addClass("arrow_close").removeClass("arrow_open");
        }

        var myspan = $(this).find('span');
        $(this).text(function (i, text) {
            return text === "Opened" ? "Closed" : "Opened";
        });
        $(this).append(myspan);
    });
});

0 个答案:

没有答案