2011-03-24 121 views
0

我想知道爲什麼下面的代碼不能按預期工作。jquery可見選擇框更改事件

/***** selecting select box having options 5,6 *****/ 
$("select:visible:first").change(function() { 
alert("hi"); 
}); 

的結構像

<div style="display: none;"> 
<select> 
    <option>1</option> 
    <option>2</option> 
</select> 

<select> 
    <option>3</option> 
    <option>4</option> 
</select> 
</div> 

<div> 
<select> 
    <option>5</option> 
    <option>6</option> 
</select> 

<select> 
    <option>7</option> 
    <option>8</option> 
</select> 
</div> 

的想法是,當有人點擊第一的兩個選擇框這是看得見的,我應該給選定的值。但不知何故change()沒有被調用。

回答

1
if($('select').is(':hidden')) { 
    put here what you wanna change... 
} 

我給你一點點啓動:)

評論,如果你不是佔有與它保持:)

+0

嗨,我不太明白。我將在選擇框中需要一個onchange事件。所以我需要一個對象來堅持。例如$(「select」)。change()...上面的if只是檢查true-false。我不確定,但我可能會錯過某些東西。 – 2011-03-24 12:28:13

+0

不確定是否有任何正確的答案。爲了解決這個問題。這是我做的。 ' ' 在的CallMe(), '函數的CallMe() { 警報($( 「選擇:可見:第一個選項:選擇」)); } ' 如果有更好的答案,請在此發佈。 – 2011-03-25 11:04:34

0

聽者越來越重視第三選擇框即。與價值觀的選擇框5,6
http://jsfiddle.net/eLxvr/
這種行爲是正確的,因爲:

第2個選擇框是在風格display:none一個div因此$("select:visible:first")將返回第三個選擇框,因爲它是第一個可見。

+0

爲真。我在Firebug控制檯中檢查過它[使用螢火蟲測試jquery](http://www.learningjquery.com/2006/12/jquerify-bookmarklet)。不知怎的,它應該工作。但是當我做$(「select:visible:first」)。change()它根本不被調用。我甚至試圖把它放在$(document).ready()下,但這也沒有幫助。 – 2011-03-24 12:32:58

+0

不確定是否有任何正確的答案。爲了解決這個問題。這是我做的。 ' ' 在的CallMe(), '函數的CallMe() { 警報($( 「選擇:可見:第一個選項:選擇」)); } ' 如果有更好的答案,請在此發佈。 – 2011-03-25 11:00:58