2010-06-17 108 views
0

我有一組使用標準yui html生成的yui按鈕。YUI按鈕onclick獲取值

<span class="yui-button yui-checkbox-button" id="analystbutton1"> 
    <span class="first-child"> 
     <button type="button" class="facetbutton" tabindex="0" id="analystbutton1-button"> 
      Joe Bloggs 
     </button> 
    </span> 
</span> 

我創建了這樣的按鈕,然後我有一些JavaScript來創建按鈕和偵聽器。

var analystCButton1 = new YAHOO.widget.Button("analystbutton1", { type:"checkbox", value:"BLOGGS", checked:false }); 
analystCButton1.on("click", onFacetClick); 

最後我有onFacetClick功能

var onFacetClick = function (e) { // e is the event 
var target = YAHOO.util.Event.getTarget(e); 
var button = new YAHOO.widget.Button(target); 
alert(button.get('type')); 
alert(button.get('id')); 
alert(button.get('value')); 
}; 

當我點擊我的任何按鈕的前兩個警報顯示類型和ID(雖然不是我所期望的)上。我無法獲取該值,警報不會觸發,但我在FireBug或錯誤控制檯中看不到錯誤。

alert(button.get('type'));返回推 - 我期望複選框 警報(button.get('id'));返回analystbutton1按鈕

回答

1

因此,原來我的功能應該是簡單的 -

var onFacetClick = function (e) { // e is the event 
     alert(e.get("value")); 
}; 

我想知道有什麼區別e.getTarget(之間)和事件e?

e.getTarget被返回HTMLButtonElement

1

e.getTarget()將返回其是事件的目標的HTML節點。

事件e是事件對象本身,它包括諸如事件類型,事件發生時間等事情。您可以通過console.log(e)來查看事件對象封裝的所有事情。

+0

感謝您使用console.log(e) – Simon 2010-06-17 13:27:52