☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Trigger callback when a selection is cleared?

Community Support
francis.l.atkinson
francis.l.atkinson

Hello,

I have a Categorical Heatmap (stand-alone, and closely based on the example in the Bokeh gallery), to which I have attached a CustomJS callback using a TapTool. The callback makes an Ajax call to a web service (with the factors from the selected cell of the Heatmap as parameters) and sets the innerHTML of a div based on the returned value. The div is created in a Jupyter notebook using a call to HTML(), or the same HTML is added manually to that produced by Bokeh via output_file(); either way, the update works as expected when a cell of the Heatmap is selected.

My problem is that I would like to clear the contents of the div when the selection is cleared (i.e. when the escape key is pressed). As I understand it, if I was using a Bokeh server, I could define a callback in Python and use “source.on_change(‘selected’, callback)” to update the plot itself (and/or linked plots and widgets) when the selection status changes. However, I don’t actually want to update the plot, only the div, and I can’t see how I can update the div using the Python callback approach.

So, in essence, my question is: Is there a way I can run a Javascript function when the selection on a plot is cleared?

Many thanks,

Francis

⌁   Link to post
birdsarah_continuum
birdsarah_continuum

Yes, use CustomJS and you can run whatever arbitrary JS you want.

At the start of your callback just check whether the selection is

now empty - if it is - run your callback.

Bokeh also has a Div widget incase it's useful.
···

http://bokeh.pydata.org/en/latest/docs/user_guide/interaction/callbacks.html#customjs-for-selections
On 9/27/16 12:52 AM,
wrote:

francis.l.atkinson@gmail.com

Hello,

      I have a Categorical Heatmap (stand-alone, and closely

based on the example in the Bokeh gallery), to which I have
attached a CustomJS callback using a TapTool. The callback
makes an Ajax call to a web service (with the factors from the
selected cell of the Heatmap as parameters) and sets the
innerHTML of a div based on the returned value. The div is
created in a Jupyter notebook using a call to HTML(), or the
same HTML is added manually to that produced by Bokeh
via output_file(); either way, the update works as expected
when a cell of the Heatmap is selected.

      My problem is that I would like to clear the contents of

the div when the selection is cleared (i.e. when the escape
key is pressed). As I understand it, if I was using a Bokeh
server, I could define a callback in Python and use
“source.on_change(‘selected’, callback)” to update the plot
itself (and/or linked plots and widgets) when the selection
status changes. However, I don’t actually want to update the
plot, only the div, and I can’t see how I can update the div
using the Python callback approach.

      So, in essence, my question is: Is there a way I can run a

Javascript function when the selection on a plot is cleared?

Many thanks,

Francis

–

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to bokeh+unsubscribe@continuum.io.

  To post to this group, send email to bokeh@continuum.io.

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/c7d4e0fa-362c-451e-9394-34dd0335769f%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/c7d4e0fa-362c-451e-9394-34dd0335769f%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).

–
Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](http://docs.continuum.io/_static/img/ContinuumWordmark.png)
    ](http://continuum.io)
⌁   Link to post
francis.l.atkinson
francis.l.atkinson

Got it. Many thanks, Sarah!

···

On Sunday, 9 October 2016 08:35:31 UTC+1, Sarah Bird wrote:

Yes, use CustomJS and you can run whatever arbitrary JS you want.
http://bokeh.pydata.org/en/latest/docs/user_guide/interaction/callbacks.html#customjs-for-selections

At the start of your callback just check whether the selection is

now empty - if it is - run your callback.

Bokeh also has a Div widget incase it's useful.


  On 9/27/16 12:52 AM, > francis.l...@gmail.com wrote:

Hello,

      I have a Categorical Heatmap (stand-alone, and closely

based on the example in the Bokeh gallery), to which I have
attached a CustomJS callback using a TapTool. The callback
makes an Ajax call to a web service (with the factors from the
selected cell of the Heatmap as parameters) and sets the
innerHTML of a div based on the returned value. The div is
created in a Jupyter notebook using a call to HTML(), or the
same HTML is added manually to that produced by Bokeh
via output_file(); either way, the update works as expected
when a cell of the Heatmap is selected.

      My problem is that I would like to clear the contents of

the div when the selection is cleared (i.e. when the escape
key is pressed). As I understand it, if I was using a Bokeh
server, I could define a callback in Python and use
“source.on_change(‘selected’, callback)” to update the plot
itself (and/or linked plots and widgets) when the selection
status changes. However, I don’t actually want to update the
plot, only the div, and I can’t see how I can update the div
using the Python callback approach.

      So, in essence, my question is: Is there a way I can run a

Javascript function when the selection on a plot is cleared?

Many thanks,

Francis

–

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to bokeh+un...@continuum.io.

  To post to this group, send email to bo...@continuum.io.

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/c7d4e0fa-362c-451e-9394-34dd0335769f%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/c7d4e0fa-362c-451e-9394-34dd0335769f%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).

–
Sarah Bird
Developer, Bokeh

    [
      <img alt="Continuum Analytics" src="https://lh6.googleusercontent.com/proxy/VYgVjggTk1hCXSN9wFkffE3I6kxTvJ51tT4KvDXOuKbs1WyFG66k7kt2-vkDimbyxfWtP-d1paJmstMYhPPnDYSUF4rLPoYM2GM2QFM=w5000-h5000" height="30px" width="150px">
    ](http://continuum.io)
⌁   Link to post

End of archived discussion · Replies are disabled