Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 如何在类内调用方法?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 如何在类内调用方法?

Javascript 如何在类内调用方法?,javascript,jquery,dom,Javascript,Jquery,Dom,我在html中有此按钮: <button id="btnCell" onclick="CellClicked(1, 1, false)"></button> 每当我单击上面的按钮时,就会出现以下错误: Uncaught ReferenceError: CellClicked is not defined 发生这种情况是因为方法封装在类中,我知道我可以将该方法拖出类,它会工作 但是我希望该方法被封装,我会问这样一个问题:当方法被封装时,我如何调用该函数?您可以通过Jav

我在html中有此按钮:

<button id="btnCell" onclick="CellClicked(1, 1, false)"></button>
每当我单击上面的按钮时,就会出现以下错误:

Uncaught ReferenceError: CellClicked is not defined
发生这种情况是因为方法封装在类中,我知道我可以将该方法拖出类,它会工作


但是我希望该方法被封装,我会问这样一个问题:当方法被封装时,我如何调用该函数?

您可以通过Javascript而不是通过标记添加侦听器。这比将函数移到全局范围更可取

 $(function() {       
    $( "#txtSearch" ).autocomplete({
      source: function( request, response ) {
         //some logic
      },
      minLength: 2,
      select: function( event, ui ) {
        log( "Selected: " + ui.item.value + " aka " + ui.item.id );
        },
    });

    function CellClicked(x, y, selXml) {          
        //some logic
    }       

    $('#btnCell').on('click', function() {
        CellClicked(1,1,false);
    }) 
});

您是否尝试过
$(“#btnCell”)。在('click',…)
?定义
单元格在
$(函数()之外单击{
在全局范围内。@gurvinder372为什么?只是curious@ParagJadhav因为onclick不会神奇地定位
CellClicked
方法。需要注意的是,您的问题中没有类。我们是否应该将此标记为dupe,以及如何使用jQuery添加单击事件?我不知道。您已投了反对票?是的。答案是问题在于,但据我理解,正确的做法是将其标记为欺骗,而不是回答。因此,投票意味着答案不是必需的,也不是错误的
 $(function() {       
    $( "#txtSearch" ).autocomplete({
      source: function( request, response ) {
         //some logic
      },
      minLength: 2,
      select: function( event, ui ) {
        log( "Selected: " + ui.item.value + " aka " + ui.item.id );
        },
    });

    function CellClicked(x, y, selXml) {          
        //some logic
    }       

    $('#btnCell').on('click', function() {
        CellClicked(1,1,false);
    }) 
});