livequery中的多个过滤器的问题

时间:2011-07-22 23:42:39

标签: jquery livequery

我有一个选择器,我应用插件selectmenu。工作正常,但是我想使用livequery来处理隐藏的元素(如果在应用selectmenu时隐藏了一个元素,则会将其隐藏)。

这有效:

$('select:visible').filter('[multiple!=multiple]').selectmenu();

但是我似乎无法对实时查询使用相同的语法:

$('select:visible').filter('[multiple!=multiple]').livequery(function() {
    $(this).selectmenu();
});

这实际上并不过滤多个选择的元素。我不得不这样做:

$('select:visible').livequery(function() {
    if($(this).attr('multiple') != 'multiple')
        $(this).selectmenu();
});

任何人都知道为什么?我尝试过各种变体,例如:

$('select:visible:not([multiple=multiple])')...

以及同样的问题。

2 个答案:

答案 0 :(得分:0)

尝试以下代码

$('select:visible:not([multiple])');

答案 1 :(得分:0)

您需要使用[multiple=true]代替[multiple=multiple][multiple=false]代替[multiple!=multiple]