2009-07-29 55 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

相关问题