我希望此网页在您单击其中一个元素时突出显示某些元素,但是如果您单击页面上的其他任何位置,则所有这些元素都不应再突出显示。
我通过以下方式完成了这项任务,它工作得很好,除了一件事(如下所述):
$(document).click(function() {
// Do stuff when clicking anywhere but on elements of class suggestion_box
$(".suggestion_box").css('background-color', '#FFFFFF');
});
$(".suggestion_box").click(function() {
// means you clicked on an object belonging to class suggestion_box
return false;
});
// the code for handling onclicks for each element
function clickSuggestion() {
// remove all highlighting
$(".suggestion_box").css('background-color', '#FFFFFF');
// then highlight only a specific item
$("div[name=" + arguments[0] + "]").css('background-color', '#CCFFCC');
}
这种强制突出显示元素的方法可以正常工作,直到我向页面添加更多 html 而没有加载新页面。这是由 .append() 和 .prepend() 完成的
我从调试中怀疑是页面不“知道”动态添加到页面的新元素。尽管新的、动态添加的元素具有适当的类名/ID/名称/onclicks 等,但它们永远不会像其他元素一样突出显示(它们在整个过程中都可以正常工作)。
我想知道为什么我的方法不适用于动态添加的内容的一个可能原因是页面无法识别页面加载期间不存在的元素。如果这是一种可能性,那么有没有办法在没有页面加载的情况下进行协调?
如果这种推理是错误的,那么我上面的代码可能不足以显示我的网页有什么问题。但我真的只是对这种思路是否可行感兴趣。