2011-07-22 49 views
0

我有一個選擇器,我將其應用於插件選擇菜單。工作正常,但我想使用livequery來處理隱藏的元素(如果一個元素在應用selectmenu的時候隱藏了,它會對它進行屠宰)。Live查詢中有多個過濾器的問題

這工作:

$('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])')... 

等等同樣的問題。

+0

你試過['.not()'](http://api.jquery.com/not/)嗎? –

+0

我對livequery插件並不十分熟悉,但是這個例子可以運行:http://jsfiddle.net/p9w49/沒有它。 –

回答

0

您需要使用[multiple=true],而不是[multiple=multiple][multiple=false]而不是[multiple!=multiple]

+0

http://jsfiddle.net/p9w49/2/ –

0

試試下面的代碼

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

http://jsfiddle.net/p9w49/1/ –

+0

它按預期工作嗎? – ShankarSangoli