Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两次调用OnClick()会导致OnClick无法工作_Javascript_Jquery_Html - Fatal编程技术网

Javascript 两次调用OnClick()会导致OnClick无法工作

Javascript 两次调用OnClick()会导致OnClick无法工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个单元格表,单击单元格时会触发一个事件。我想动态添加单元格,所以我将在所有行上再次调用OnClick。当我第二次调用OnClick时,任何调用过两次OnClick的单元格都会停止触发任何事件 奇怪的是我的OnClick函数,如果我可以返回的话;它可以工作,但会抛出一个错误,表示未定义Return function initBox() { $(".selectable").on('click', function (event) { //if its selecte

我有一个单元格表,单击单元格时会触发一个事件。我想动态添加单元格,所以我将在所有行上再次调用OnClick。当我第二次调用OnClick时,任何调用过两次OnClick的单元格都会停止触发任何事件

奇怪的是我的OnClick函数,如果我可以返回的话;它可以工作,但会抛出一个错误,表示未定义Return

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效果无效,使您认为它不起作用。