[英]Calling OnClick() twice causes OnClick to not work
我有一个单元格表,单击一个单元格时会触发一个事件。 我想动态添加单元格,因此我将在所有行上再次调用OnClick。 当我第二次调用OnClick时,任何两次调用OnClick的单元格都会停止触发任何事件。
奇怪的是,如果我可以“返回”,就使用OnClick函数。 它有效,但是会引发错误,提示未定义“返回”
function initBox() {
$(".selectable").on('click', function (event) {
//if its selected already, unselect it
if ($(this).hasClass('rowHighlightColor')) {
$(this).removeClass("rowHighlightColor");
selectedCellList = null;
}
else {
//unselect previous cell
if (selectedCellList != null) {
selectedCellList.removeClass("highlighted");
}
selectedCellList = $(this);
$(this).addClass("rowHighlightColor");
}
Return;
});
}
它需要return
而不是Return
(大写R)
但是,写return;
返回undefined
因此您可以忽略它。
编辑:
您将事件附加两次,请确保仅将其附加一次,否则会(如您所注意到的那样)引起不良行为,例如附加类并立即将其再次删除。
它与“返回”一起使用的原因是该函数仅运行一次,因为到达该函数时会引发错误。
使用jQuerys .live()
(或新版本的.on()
,因为不推荐使用live)来将click事件自动附加到您添加的每个新行。 jQuery Live文档
您正在向现有单元添加多个事件处理程序。 这就是为什么我只使用普通的旧.onclick
属性的原因之一。
无论如何,要解决此问题,您可以仅将事件应用于新单元格,或者在添加事件时向其添加属性,然后在再次添加事件之前检查该属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.