Forum Discussion
Events only triggered once [Dashboard confirmed]
- 8 years ago
v-ljerr-msft
I should have updated this post, the problem was actually that empty DOM elements were infront of my dashboard element and so I was never actualy clicking on the tile after the first time (where they get added), it just looked like it. Bit of a rookie mistake really, I clearly wasn't thinking but it's all working now.
FYI though, you are able to have multiple listeners for the same event on an element.
For examplevar embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}}); embeddedDashboard.on('tileClicked', function (event) { console.log('tile clicked event', event); });
embeddedDashboard.on('tileClicked', function (event) {
console.log('I would log after the above console log');
});Using off
var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}}); embeddedDashboard.on('tileClicked', function (event) { console.log('You will never see me', event); });
embeddedDashboard.off('tileClicked);
embeddedDashboard.on('tileClicked', function (event) {
console.log('You would see me though!');
});var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}}); embeddedDashboard.on('tileClicked', function (event) { console.log('You will never see me', event); });
embeddedDashboard.on('tileClicked', function (event) {
console.log('Or me!');
});
embeddedDashboard.off('tileClicked');
Hi godd4k,
According to your description above, I just tested the tileClicked event with Microsoft Power BI Embedded Sample. And the tileClicked event can be triggered more that once(every time I clicked a tile on the dashboard).
I assume you may need to firstly remove the tileClicked event handler if it already exists to make it work in this scenario.:smileyhappy:
var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}});
//.off removes a given event handler if it exists.
embeddedDashboard.off("tileClicked");
embeddedDashboard.on('tileClicked', function (event) {
console.log('tile clicked event', event);
});
Regards
v-ljerr-msft
I should have updated this post, the problem was actually that empty DOM elements were infront of my dashboard element and so I was never actualy clicking on the tile after the first time (where they get added), it just looked like it. Bit of a rookie mistake really, I clearly wasn't thinking but it's all working now.
FYI though, you are able to have multiple listeners for the same event on an element.
For example
var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}});
embeddedDashboard.on('tileClicked', function (event) {
console.log('tile clicked event', event);
});
embeddedDashboard.on('tileClicked', function (event) {
console.log('I would log after the above console log');
});
Using off
var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}});
embeddedDashboard.on('tileClicked', function (event) {
console.log('You will never see me', event);
});
embeddedDashboard.off('tileClicked);
embeddedDashboard.on('tileClicked', function (event) {
console.log('You would see me though!');
});
var embeddedDashboard = powerbi.embed({{myElem}}, {{myConfig}});
embeddedDashboard.on('tileClicked', function (event) {
console.log('You will never see me', event);
});
embeddedDashboard.on('tileClicked', function (event) {
console.log('Or me!');
});
embeddedDashboard.off('tileClicked');