[javascript] क्या डोजो टैबकॉन्टेनइयर के पास कोई ऐसा ईवेंट है जो टॉगर बदलते समय ट्रिगर होता है?


Answers

डॉक्स से;

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

क्या DOJO TabContainer के पास कोई ईवेंट है जो टैब बदलते समय ट्रिगर हो?

मुझे लगता है कि यह होगा, लेकिन मुझे इसके बारे में दस्तावेज में कुछ नहीं मिला। :(

हल: ऐसा लगता है कि मुझे यहां एक समाधान मिला है:

डेज़ीट टैबकंटैनेयर इवेंट्स - ऑनफोकस

सर्वाधिक खोज योग्य विषय शीर्षक नहीं: /




यहाँ एक पूर्ण कोड नमूना है जो Dojo 1.8 में काम करता है, मैंने इसे परीक्षण किया है। यह ऐसी कोई घटना नहीं है जो केवल टैब बदलने पर आग लगाती है, मुझे एपीआई में आग लगने के लिए कोई भी घटनाएं नहीं मिल सकतीं, लेकिन कम से कम यह क्लिक ईवेंट पर काम करता है।

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 
            $('.hidden_field_id').val(panel.selectedChildWidget.id);  //on click, save the selected child to a hidden field somewhere. this $ is jquery, just change it to 'dojo.query()'
        });
    });
});

//include this function if you want to reselect the tab on page load after a postback
require(["dijit/registry", "dojo/ready", "dojo/domReady!"], function (registry, ready) {
    ready(function () {
        var tabId = $('.hidden_field_id').val();
        if (tabId == null || tabId == "")
            return;
        var panel = registry.byId('mainTab');
        var tab = registry.byId(tabId);
        panel.selectChild(tab);
    });
});



Related