开发者

Dijit TabContainer Events - onFocus

I have a Tab Container and I want to execute some j开发者_StackOverflows when I click on a tab's title bar.

I can't seem to figure out how to add an event to that.


EDIT:

It looks like I'll be using onFocus, but I'm still having trouble finding the proper syntax.


EDIT: Found onFocus and onBlur, but still having trouble getting it to work.


You need to connect to the _transition event.

var tabs = dijit.byId("tabs");
dojo.connect(tabs,"_transition", function(newPage, oldPage){
    console.log("I was showing: ", oldPage || "nothing");
    console.log("I am now showing: ", newPage);
});

Where "tabs" is your TabContainer.


Here's a complete code sample that works in Dojo 1.8, I've tested it:

require(["dijit/registry",  "dojo/on", "dojo/ready", "dojo/domReady!"], function (registry, on, ready) {
    ready(function () { //wait till dom is parsed into dijits
        var panel = registry.byId('mainTab');   //get dijit from its source dom element
        on(panel, "Click", function (event) {   //for some reason onClick event doesn't work 
            alert(panel.selectedChildWidget.id);  
        });
    });
});


The correct Dojo 1.7+ should be;

var tabs = registry.byId('someTabs');
tabs.watch("selectedChildWidget", function(name, oval, nval){
    console.log("selected child changed from ", oval, " to ", nval);
});

another way could be

var tabs = registry.byId('someTabs');
aspect.after(tabs, "selectChild", function (event) {
     console.log("You selected ", tabs.selectedChildWidget.id);
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜