点击处理程序上的jQuery事件无效

时间:2017-01-09 06:49:07

标签: javascript jquery event-handling

我有两个<p>和一个<div>,并希望事件处理程序在按下第一个 <p>时显示一条消息。我该怎么办呢?

&#13;
&#13;
$("#menu:first-child").on('click', 'p', pullInput);

function pullInput() {
  console.log("da");
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="menu">
  <p id="newCategoryButton">New category</p>
  <p>New Song</p>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

你的选择器错了。像这样更新您的选择器

&#13;
&#13;
$("#menu p:first-child").on('click', pullInput);
function pullInput(){
  console.log("HI!");
}
     
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="menu">
  <p id="newCategoryButton">New category</p>
  <p>New Song</p>
</div>
&#13;
&#13;
&#13;

工作小提琴https://jsfiddle.net/9amv3vmh/

答案 1 :(得分:1)

您需要将:first-child选择器与p元素一起使用。

$("#menu").on('click','p:first-child',pullInput);

$("#menu").on('click', 'p:first-child', pullInput);

function pullInput() {
  console.log("da");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="menu">
  <p id="newCategoryButton">New category</p>
  <p>New Song</p>
</div>

但是,由于您已指定ID p元素,因此使用它来绑定事件处理程序。

$("#newCategoryButton").on('click', pullInput);