Javascript 两次调用OnClick()会导致OnClick无法工作
我有一个单元格表,单击单元格时会触发一个事件。我想动态添加单元格,所以我将在所有行上再次调用OnClick。当我第二次调用OnClick时,任何调用过两次OnClick的单元格都会停止触发任何事件 奇怪的是我的OnClick函数,如果我可以返回的话;它可以工作,但会抛出一个错误,表示未定义ReturnJavascript 两次调用OnClick()会导致OnClick无法工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个单元格表,单击单元格时会触发一个事件。我想动态添加单元格,所以我将在所有行上再次调用OnClick。当我第二次调用OnClick时,任何调用过两次OnClick的单元格都会停止触发任何事件 奇怪的是我的OnClick函数,如果我可以返回的话;它可以工作,但会抛出一个错误,表示未定义Return function initBox() { $(".selectable").on('click', function (event) { //if its selecte
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;
});
}
它需要的是回报,而不是回报资本R
然而,写作回归;返回undefined,因此可以忽略它
编辑:
附加事件两次,确保只附加一次,否则会导致不希望出现的行为,如附加类并立即再次删除它
它与Return一起工作的原因是函数只运行一次,因为它在到达它时会抛出一个错误
对于较新的版本,请使用jQuerys.live或.on,因为不推荐使用live将单击事件自动附加到您添加的每一新行 您正在向现有单元格添加多个事件处理程序。这就是我喜欢只使用普通的old.onclick属性的原因之一
无论如何,要解决此问题,您可以只将事件应用于新单元格,或者在添加事件时向新单元格添加属性,然后在再次添加事件之前检查该属性。ya但它不会第二次触发事件。这是奇怪的事情请在你否决投票前阅读说明,我知道回报是没有定义的。我是说,这很奇怪,它使它工作你有任何进展与你的问题?在函数中添加一个console.log,我敢肯定它会被调用两次,从而使addClass效果无效,使您认为它不起作用。