d3.js
इवेंट्स पर
खोज…
वाक्य - विन्यास
- .on ('माउसओवर', फंक्शन)
- .on ('माउसआउट', फंक्शन)
- .on ('क्लिक', फंक्शन)
- .on ('माउसएंटर', फंक्शन)
- .on ('मूसलीव', फंक्शन)
टिप्पणियों
चयन पर बुनियादी घटनाओं को संलग्न करना
अक्सर बार आप अपनी वस्तुओं के लिए घटनाओं के लिए चाहते हैं।
function spanOver(d,i){
var span = d3.select(this);
span.classed("spanOver",true);
}
function spanOut(d,i){
var span = d3.select(this);
span.classed("spanOver", false);
}
var div = d3.select('#divID');
div.selectAll('span')
.on('mouseover' spanOver)
.on('mouseout' spanOut)
यह उदाहरण कक्षा spanOver
जब आईडी divID
साथ डिव के अंदर एक स्पैन पर divID
और जब माउस स्पैन से बाहर निकलता है तो उसे हटा देता है।
डिफ़ॉल्ट रूप से d3 वर्तमान अवधि और सूचकांक के डेटम को पारित करेगा। यह वास्तव में आसान है कि this
संदर्भ वर्तमान वस्तु के साथ-साथ है ताकि हम इस पर परिचालन कर सकें, जैसे कि कक्षाएं जोड़ें या निकालें।
तुम भी घटना पर एक गुमनाम समारोह के रूप में अच्छी तरह से उपयोग कर सकते हैं।
div.selectAll('span')
.on('click', function(d,i){ console.log(d); });
डेटा तत्वों को वर्तमान चयनित ऑब्जेक्ट में भी जोड़ा जा सकता है।
div.selectAll('path')
.on('click', clickPath);
function clickPath(d,i) {
if(!d.active) {
d.active = true;
d3.select(this).classed("active", true);
}
else {
d.active = false;
d3.select(this).classed("active", false);
}
}
इस उदाहरण में सक्रिय क्लिक घटना से पहले चयन पर परिभाषित नहीं है। यदि आप पथ चयन पर वापस जाने के लिए थे, हालांकि सभी क्लिक की गई वस्तुओं में active
कुंजी शामिल होगी।
ईवेंट श्रोता को निकालें
d3.js के पास मौजूद ईवेंट श्रोताओं को रोकने के लिए एक .off()
विधि नहीं है। ईवेंट हैंडलर को निकालने के लिए, आपको इसे null
पर सेट करना होगा:
d3.select('span').on('click', null)