Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 单击事件没有触发首先单击div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 单击事件没有触发首先单击div

Javascript 单击事件没有触发首先单击div,javascript,jquery,html,Javascript,Jquery,Html,我使用以下代码段调用文档的click事件: $(document).bind("click", $.proxy(proxy._cellClickHandler, proxy)); _cellClickHandler: function (e) { var $target = $(e.target), row = $target.closest('tr'), proxy = this,

我使用以下代码段调用文档的click事件:

$(document).bind("click", $.proxy(proxy._cellClickHandler, proxy));

_cellClickHandler: function (e) {
            var $target = $(e.target),
                row = $target.closest('tr'),
                proxy = this,
                args = {},
                currentData,
                index;
}

第一次单击它不会触发事件。在第二次单击时,它将正确调用。如何解决此问题?

尝试使用
。如果未使用更新的jquery 1.9,请单击live

$(document).live("click", $.proxy(proxy._cellClickHandler, proxy));
使用“on”():


那么为什么第二次点击会起作用呢?很可能元素是动态加载的。DOM无法以某种方式注册它,因此可能找不到元素。我不是询问者。。刚才问到,如果我们假设在注册事件时元素不存在,那么为什么它在第二次单击时工作。有两种可能,要么正确工作,要么不能完全工作。我想OP的代码可能还有其他问题。@RajaprabhuAravindasamy,我后来知道了。询问者分享了你名字的前四个字母,我感到困惑。为了回答这个问题,DOM和JS必须是相互关联的。DOM必须在JS之前加载。动态元素往往需要时间,可能是在第二次单击时该元素可用。但这同样取决于代码。@Makrand-或
.on
在新版本中。将其包装在$(文档)中。ready()25个问题,但根本不接受答案!?你真的应该有一些答案。
var proxy= {
  _cellClickHandler: function (e) {
            var $target = $(e.target),
                row = $target.closest('tr'),
                proxy = this,
                args = {},
                currentData,
                index;
  }
}

$(document).on("click", $.proxy(proxy._cellClickHandler, proxy));