2009-07-29 97 views
1

我使用YUI 3讓別人單擊「全選」或「選擇無」,然後讓選擇框分別選擇所有項目或取消全部選擇。這裏是我的代碼:在沒有選擇的情況下,YUI 3中需要Javascript選擇框刷新?

// This selects all 
    Y.on('click',function (e) { 
      selectBoxNode.get("options").each(function() { 
       this.removeAttribute('selected'); 
       this.setAttribute('selected','selected'); 
      }); 
     }, selectAllNode 
    ); 

// This selects none 
    Y.on('click',function (e) { 
      selectBoxNode.get("options").each(function() { 
       this.setAttribute('selected','false'); 
       this.removeAttribute('selected'); 
      }); 
      selectBoxNode.('selectedIndex',-1); 
     }, selectNoneNode 
    ); 

selectAllLink,selectNoneLink和selectBoxNode是不言而喻的,正常返回的節點。更新:selectAll的作品,我不得不手動刪除每個「選擇」屬性,並重新添加它。

selectNoneLink不起作用:它僅取消選擇之前未選擇的元素......雖然DOM檢查顯示selectedIndex屬性確實已更改爲-1,因此可能需要刷新?

任何幫助,將不勝感激。如果這發生在所有框架中,那也很好。

謝謝!

回答

1

這對我有效。

YUI().use('node', function(Y) { 
    Y.get('#unsel').on('click', function(e) { 
    Y.get('select').get('options').set('selected',false); 
    }); 
    Y.get('#sel').on('click', function(e) { 
    Y.get('select').get('options').set('selected', true); 
    }); 
}); 
+0

謝謝,它工作得很好。我認爲錯誤來自嘗試this.removeAttribute('selected')上的「選項」,但沒有被選中,但他們沒有被報告,所以東西剛剛停止工作後,點擊幾下。再次感謝! – ash 2009-07-29 23:49:12

相關問題