JQuery选择器中的可选参数?

时间:2013-12-12 19:07:58

标签: javascript jquery

我正在尝试在JQuery中创建一个选择器,当单击文档中的任何位置时,该选择器将淡入多个列表中的元素。现在有两个列表kiosksprofiles。我用于该函数的代码如下所示:

$(document).on('click', function( e ){
    $( '.profile:not(".default") .name:not(".selected") .rename' ).fadeIn(80);
    $( '.kiosk .name:not(".selected") .rename' ).fadeIn(80);
});

有没有办法可以添加一个可选的选择器,这样如果该项是一个配置文件,它也会排除default,但是否则任何名称都使用这些规则?

编辑:我要做的是将该功能集成一行,这样就可以了:

$(document).on('click', function( e ){
    $( '[profile:not("default") .name:not("selected") .rename' ).fadeIn(80);
});

以下是附有数据绑定的HTML:

    <!-- Profiles -->
    <div class="profiles">
        <h1>Profiles</h1>
        <div data-bind="template: { name: 'profilestempl', foreach: $root.profiles }"></div>
    </div>

    <script type="text/html" id="profilestempl">
        <div class="profile" data-bind="css: { 'default' : !canChange() }">
            <div class="name" data-bind="css: { 'selected' : isSelected }">
                <input type="text" data-bind="hasfocus: $data.isSelected, value: tempName, enable: canChange(), valueUpdate: 'keyup'" />
                <span class="rename" data-bind="click: $root.selectProfile">q</span>
            </div>
        </div>
    </script>

    <!-- Kiosks -->
    <div class="kiosks">
        <h1>Kiosks</h1>
        <div data-bind="template: { name: 'kioskstempl', foreach: $root.kiosks }"></div>
    </div>

    <script type="text/html" id="kioskstempl">
        <div class="kiosk">
            <div class="name" data-bind=" css: { 'selected' : isSelected }">
                <input type="text" maxlength="30" data-bind="hasfocus:$data.isSelected, value:tempName, valueUpdate: 'keyup' " />
                <span class="rename" data-bind="click: $root.selectKiosk">q</span>
            </div>
            <select data-bind="options: $root.profiles, optionsText: 'name', value: profile"></select>

        </div>
    </script>

1 个答案:

答案 0 :(得分:0)

如果您的目标是将其放在一行,则可以使用Multiple Selector

$(document).on('click', function( e ){
    $( '.profile:not(".default") .name:not(".selected") .rename, .kiosk .name:not(".selected") .rename' ).fadeIn(80);
});