触发生命时没有抓到JQuery事件

时间:2017-08-01 15:15:47

标签: javascript jquery html javascript-events

我有以下html文件,名为a.html

<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script type="text/javascript" src="a.js"></script>
    </head>

    <body>
        <script>
            $(document).on('foo', function () {
                alert('test');
            });
        </script>
    </body>
</html>

以下Javascript文件,名为a.js

(function() {   
    $(document).trigger('foo');
}());

当我打开a.html时,会调用a.js中的触发器调用,即行

$(document).on('foo', function () {
调用

但从不调用警报。我做错了什么?

5 个答案:

答案 0 :(得分:1)

根据我的理解,上面代码中的问题是a.js在下面的脚本之前被加载。

<script>
    $(document).on('foo', function () {
        alert('test');
    });
</script>

这个事件在a.js中被调用之后就会被绑定。

尝试在下面的脚本下方加载a.js。

<script>
    $(document).on('foo', function () {
        alert('test');
    });
</script>
<script type="text/javascript" src="a.js"></script>  

答案 1 :(得分:1)

将两个脚本按顺序放置在一个位置,如图所示。

<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script type="text/javascript" src="a.js"></script>
    </head>

    <body>
      <label> rerwnr</label>
        <script>

        </script>
    </body>
</html>

  (function() {   
     $(document).on('food', function () { 
                  alert('test');
              });
      $(document).trigger('food');
  }());

https://codepen.io/pavankumark/pen/WExNEg

点击此处链接了解更多详情。

答案 2 :(得分:0)

尝试在正文末尾添加脚本文件a.js,

                  

<body>
    <script>
        $(document).on('foo', function () {
            alert('test');
        });
    </script>
    <script type="text/javascript" src="a.js"></script>
</body>

答案 3 :(得分:0)

您需要像这样更新您的代码:

您可以将脚本代码放到$sql = "DELETE FROM vacature WHERE vacature_id = ?"; 文件中:

此处为ID演示:https://jsbin.com/fukujad/edit?html,output

a.js

答案 4 :(得分:-1)

from Tkinter import * items = ['pistol', 'knife', 'sword'] root = Tk() strvar = StringVar() root.title('RPG Game') root.geometry('900x600') root.resizable(False, False) frame1 = Frame(root, relief=RAISED) frame1.pack(side=LEFT, fill=Y, padx=10, pady=10) entry = Entry(frame1, textvariable=strvar) entry.pack(fill=X) def srtGame(): if strvar.get() == str('drop'): print("HELLO") print("Your inventory:", items) # TODO: # Use Dialog window to ask for item to drop # Let that be stored in `dropItem` dropItem = None # Temporary # Better than using for loop for this if dropItem in items: items.remove(dropItem) print("Your", dropItem, "has been dropped. ") print("Your inventory", items) else: print("You don't have that item. Please enter another command.") startButton = Button( frame1, text="Start game.", relief=RAISED, command=srtGame) startButton.pack(fill=X) GameOutput = Label(frame1, textvariable=strvar, relief=RAISED) GameOutput.pack(fill=X) root.mainloop() 中,您在定义触发器a.js之前调用它, 尝试像这样使用foo,它会起作用

document ready

它将等待加载整个文档(以及文档中的所有脚本)