这似乎应该是一个简单的解决方案。该代码允许用户单击标题、段落或图像,并标识元素的类型。它工作,但随后陷入了一个无限循环。它似乎在继续尝试运行相同的代码。我读了很多类似的问题,但建议使用。一个或其他方法没有工作。
$(document).ready(function() {
const elementsToMatch = ['h1', 'p' , 'img']
const elementsMessage = ['This is a heading', 'This is a paragraph' , 'This is an image']
$('*').click(function(e) {
const target = $(e.target)
elementsToMatch.forEach(function(element, index) {
if (target.is(element, index)) {
alert(elementsMessage[index]);
};
});
});
1条答案
按热度按时间3npbholx1#
这不是对代码错误的另一种解释,而是一种替代方法,我认为这是你的意图:
click元素没有附加到
*
,因为这将导致每次在任何目标元素中观察到单击时触发三个事件(针对 *target元素 * 本身以及body
和html
元素)。相反,我在父体元素上使用“委托”事件处理,仅限于元素"H1,P,IMG"
。多年后回到这个问题,我注意到当然也有一个简单的非jQuery答案: