簡體   English   中英

兩次調用OnClick()會導致OnClick無法正常工作

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM