我想将焦点移到Jupyter笔记本的下一个单元格。我编写了一个Javascript函数,当用户按下HTML按钮时会触发该函数。我使用IPython.core.display.HTML中的功能将此按钮添加到笔记本中。以下是此按钮的HTML部分:按钮onclick=“设置参数();“[在html括号中]。在这个函数中--是的,名字是set_params --我准备了一个应该由Python内核执行的命令。我确定当按钮被按下时,这个命令实际上就完成了。然后,我希望光标移动到下一个单元格--不幸的是,这并没有发生。下面是我的Javascript函数的一部分:
var command = 'input_params = [' + names + ']';
IPython.notebook.kernel.execute(command);
i = IPython.notebook.get_selected_index();
IPython.notebook.select(i+1);
我甚至用一些额外的代码检查了索引为i+1的单元格是否真的是单元格,它确实是。为什么焦点不移动?
2条答案
按热度按时间xwmevbvl1#
如果导入Javascript:
您可以执行以下操作:
单元格从索引0开始
tnkciper2#
几百万年后...
最后我调用了3个javascript函数,分别是
select_next()
、focus_cell()
和execute_selected_cells()
,所有这些调用都可以在第一个单元格中合并到一个过程中,然后在每次想跳到下一个单元格时调用这个函数。因此,在没有用户输入的代码的“线性”部分,在每个单元格的末尾调用此函数
但是,在接口单元格中,只有当用户选择/接受参数并且这些参数正确时,才应调用此函数。
我还没有对这种方法进行广泛的测试,但到目前为止,它工作得很好。