[英]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.