在您显示的示例中,当您单击 Ajax 时它显示的唯一 Ajax 示例是具有“Ajax”类的示例,即“Silverstripe 2.4 的共享事件日历模块”
您只有另一个 ajax 示例,它的 AJAX 类不匹配,因为它不是与 Ajax 的字符串匹配
AJAX != 阿贾克斯
因此,您的 jquery 选择器将不起作用,因为它区分大小写。另外我只能看到 2 个样本,而不是 3 个?
编辑:另外,在连接样本检查的 JS 中,最好使用
$('.samples :checkbox').each(function () {
而不是
$(':checkbox').each(function () {
因为它限制了 jquery 必须迭代的范围。
编辑:
为了解释为什么有些样本被隐藏了,这是因为你的
$(':checkbox').each(...)
正在工作中;
每次单击某些内容时都会触发检查控件,它会处理所有可以单击的复选框。想象一下,如果你的经历是这样的:
<div class='samples'>
<div class='asp'>...</div>
<div class='php asp'>...</div>
<div class='php django'>
</div>
如果您单击 ASP 复选框,它会循环并说,ok show sample 1 因为它有 ASP,然后它会循环并说 show sample 2 因为它有 ASP,然后它会再循环一次并看到示例 3 中没有 ASP,因此它将隐藏它。
然后它循环到下一个复选框(为了称为 PHP 的参数);它从样本 2 开始(因为 .each 循环)并看到它没有被检查,所以它隐藏了样本 2,即使它之前显示过,对于样本 3 也是如此。
你明白我的意思吗?随后的 .each 迭代正在取消为复选框完成的显示;当您选择的复选框的 ID 出现在 HTML 布局中的实际示例之前。