jQuery - 选择嵌套在 div ul li 中的特定按钮

Posted

技术标签:

【中文标题】jQuery - 选择嵌套在 div ul li 中的特定按钮【英文标题】:jQuery - Selecting specific button nested within div ul li 【发布时间】:2012-10-30 10:23:49 【问题描述】:

我承认迷路了。我正在尝试选择一个嵌套在嵌套在 div 中的 ul 中的行项目中的按钮

这是创建菜单栏的 php。它通过 ajax 返回到 id 为“menubar”的 div。那部分工作正常。但是,我的点击功能都没有做任何事情。

echo "<ul>";
echo "<li class = 'menu'><button class = 'menbtn' id='scores'>Scores</button></li>";
echo "<li class = 'menu'><button class = 'menbtn' id='rules'>Rules</button></li>";
echo "<li class = 'menu'><button class = 'menbtn' id='courses'>Courses</button></li>";
echo "<li class = 'menu'><button class = 'menbtn' id='history'>Comments</button></li>";
echo "<li class = 'menu'><button class = 'menbtn' id='history'>Reservation</button></li>";
echo "</ul>";

我假设我必须使用某种嵌套选择,因为对于 id 为“scores”的按钮的单击功能 - $('#scores') 什么都不做。我已经尝试了各种嵌套选择器并且已经删除了。

如果有人可以向我展示带有“分数”ID 的按钮的正确选择器,我会从那里弄清楚。

谢谢,

DMD

【问题讨论】:

获取输出标记和 JS 并粘贴到 jsfiddle 或 jsbin。需要更多上下文。点击#scores 应该没问题。我在猜测 $ 准备好之前的语法错误或绑定。 【参考方案1】:

您似乎没有将这些事件放在 document.ready 函数中。试着把它们放进去。

示例:

$(document).ready(function()
   $("#scores").click(function()
       // Your Stuff
   );
);

【讨论】:

【参考方案2】:

这将为您的按钮添加一个事件侦听器。

$(document).on('click', '#scores', function ()
    //do something
);

【讨论】:

我的猜测也是如此,但 Q 缺少很多细节。 @user1813926 那么请投票并接受答案。乐于助人。【参考方案3】:

首先,您的 html 按钮 Comments 和 reservations 中的标记无效,具有相同的 id,其次

选择器其实很简单

$("#scores") //<----

但是由于您没有提供有关如何构建 html 的太多详细信息,因此很难看出真正的解决方案是什么,只能猜测。一件事可能是您需要使用事件 on 在通过 php 添加 html 后触发事件处理程序

例如

$("#score").on("click", function() //do something);

【讨论】:

非常感谢 - id 没问题。我的 sn-p 编辑不正确。【参考方案4】:

问题是jquery可以读取dom中ajax返回的新元素。 要通知 jquery 重新读取你必须调用 live 的 dom。

$('#scores').live("click",function()
     alert("you clicked scores");
);

【讨论】:

该功能已上线,已弃用,您必须通过功能on进行更改 .live 和 .on work,我感谢大家的建议。我怀疑我自己会找到答案。【参考方案5】:

您可以使用live()方法,借助该方法您可以触发通过ajax添加的新元素。

$(document).ready(function()
  $('#scores').live('click',function()
    //Your code
  )
);

【讨论】:

谢谢。 .live 工作正常;但是我发现它已被弃用,而 .on 也可以使用。

以上是关于jQuery - 选择嵌套在 div ul li 中的特定按钮的主要内容,如果未能解决你的问题,请参考以下文章

jquery如何追加整个嵌套元素?

jquery怎么选择嵌套的第一层的li

如何用jquery获得每个ul下最后一个li

如何用jquery获得每个ul下最后一个li

jquery如何获取ul中第一个li和最后一个li

jquery中删除指定ul中除第一个li外的所有li的代码?