使用“pys-onClick=…”从按钮点击调用py脚本函数无效?

kmbjn2e3  于 2022-10-22  发布在  Java
关注(0)|答案(1)|浏览(143)

我对PyScript比较陌生,希望在单击按钮时运行一个函数。然而,无论我尝试什么代码,它似乎都不起作用。该按钮可单击,但似乎不起任何作用。当我手动调用函数(在py脚本标记中)时,它工作正常。我错过了什么吗?
这是我的代码,感谢您的帮助:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <title>Test</title>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
  </head>

  <body>

    <button id="test" type="button" pys-onClick="speak">run test</button>

<py-script>

def speak():
    print("hello")

</py-script>

  </body>
</html>
tkclm6bt

tkclm6bt1#

随着它的发展,PyScript中的一些东西是移动目标。关于你的代码的一些事情。第一个pys-onClick在最近的版本(包括您在这里使用的“最新”)中已被弃用,取而代之的是py-onClick。第二,要从按钮元素调用函数,语法当前应为py-onClick=“function()”(pys-onClick=“fuction”在早期版本中确实有效)。最后,我愿意在这里更正,python代码中的“print”方法会打印到控制台(如果您打开开发人员工具,每次调用函数时都会看到它打印到控制台)。如果希望文本显示在页面上,则需要写入DOM。如果我正确理解您的意图,此代码将为您提供所需的结果。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <title>Test</title>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
  </head>

  <body>

    <button id="test" type="button" py-onClick="speak()">run test</button>
    <div id="display"></div>

<py-script>

def speak():
    Element('display').write("Hello")

</py-script>

  </body>
</html>

请记住,随着PyScript的发展,随着开发人员和维护人员完善框架,这种语法可能无法用于未来的版本。不幸的是,PyScript的文档还没有很多。如果您想探索,您可以在https://docs.pyscript.net/latest/上找到文档。目前,您最好的指导方式是查看https://pyscript.net/examples的示例。干杯!

相关问题