烧瓶部位;对不同元素重复使用Javascript / Ajax函数(MacOS Mojave)

时间:2018-12-26 06:47:07

标签: javascript python jquery html ajax

我对Javascript / ajax不太熟悉,但是我发现了一个可以在我的Flask网站上运行的代码段。

  <script type=text/javascript>
          $(function() {
            $('a#test1').bind('click', function() {
              $.getJSON('/say1',
                  function(data) {
                //do nothing
              });
              return false;
            });
          });
  </script>

在我的app.py文件中,我有一个与JS / Ajax函数绑定的装饰器函数:

@app.route('/say1')
def say1():
    print("background test pass")
    os.system('say -r 100 "I am a robot"')
    return("hello")

单击图像时,JS通过id(在本例中为id = test1)捕获单击,然后选择python函数并执行代码(如我所确定的那样)。

<a href=# id=test1><img id=test class="img-fluid" alt="Responsive image" src="static/macban.jpg"></a>

它很好用,但是我现在想添加多个图像,并想将python函数和Ajax / js函数重用于不同的图像ID。如果有的话,JS函数的重用就可以了。我知道'a#test'是选择单击哪个图像的方法,而$ .getJSON('/ say1')是通往python函数的途径,但是我还没有找到一种方法来更改它,具体取决于点击。目前,我已经复制了该函数(它看起来很忙而且效率很低)。

我的具体问题是:单击元素时如何将'a#test1'和'/ say1'字符串更改为图像ID?如果我确实创建了一些if / elif逻辑来确定要单击哪个,那么它应该在Javascript还是Python部分中?

如果有更好的方法可以执行此操作,请随时批评我,因为我完全不熟悉编码。哦,我知道os.system()对执行服务器端很危险,但这(暂时)将是安全网络上的本地托管站点。如果有更好的方法可以从浏览器激活Mac的“ say”命令,那么我也欢迎更好的主意。

谢谢

0 个答案:

没有答案