gpt4 book ai didi

javascript - 如何获取使用 jQuery 单击的动态加载元素

转载 作者:行者123 更新时间:2023-11-30 20:46:14 25 4
gpt4 key购买 nike

我正在将内容动态加载到我的页面中。单击其中一张图像时,我需要取消选择所有其他图像并选中已单击图像的复选框。如果单击复选框的图像、文本,我需要执行此操作。

this 包含所有 li 元素,而不仅仅是被点击的元素。谁能建议我如何识别哪些 li 元素触发了代码?

$('#colours').click('li', function() {
$(this).children('li').find('input').prop('checked', false);
$(this).find('input').prop('checked', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="colours">
<li>
<label for="">
<img src="swatch-1.jpg" alt=""><input type="checkbox" value="1"> <span>Red</span>
</label>
</li>
<li>
<label for="">
<img src="swatch-2.jpg" alt=""><input type="checkbox" value="2"> <span>Green</span>
</label>
</li>
<li>
<label for="">
<img src="swatch-3.jpg" alt=""><input type="checkbox" value="3"> <span>Blue</span>
</label>
</li>
</ul>

最佳答案

首先,您似乎正在尝试创建委托(delegate)事件处理程序,但是您的语法不正确,这就是问题的原因。您需要使用带有事件名称和选择器的 on() 而不是 click。从那里您可以直接使用 this 引用选择 li,如下所示:

$('#colours').on('click', 'li', function() {
$('#colours li').find('input').prop('checked', false);
$(this).find('input').prop('checked', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="colours">
<li>
<label>
<img src="swatch-1.jpg" alt="">
<input type="checkbox" value="1">
<span>Red</span>
</label>
</li>
<li>
<label>
<img src="swatch-2.jpg" alt="">
<input type="checkbox" value="2">
<span>Green</span>
</label>
</li>
<li>
<label>
<img src="swatch-3.jpg" alt="">
<input type="checkbox" value="3">
<span>Blue</span>
</label>
</li>
</ul>

但是,您在此处创建的行为(一次只能选中一个复选框)与 radio 输入元素的标准行为相同。因此,只使用它们会更有意义。这样你根本不需要任何 JS 代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="colours">
<li>
<label>
<img src="swatch-1.jpg" alt="">
<input type="radio" name="swatch" value="1">
<span>Red</span>
</label>
</li>
<li>
<label>
<img src="swatch-2.jpg" alt="">
<input type="radio" name="swatch" value="2">
<span>Green</span>
</label>
</li>
<li>
<label>
<img src="swatch-3.jpg" alt="">
<input type="radio" name="swatch" value="3">
<span>Blue</span>
</label>
</li>
</ul>

关于javascript - 如何获取使用 jQuery 单击的动态加载元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com