首先,如果标题不太好,请见谅,我找不到更好的了。
如何使用JavaScript将函数设置为Div的clickEvent,并同时将函数的参数设置为Div本身?
例如:
我有一个包含以下内容的HTML文件:
<span id='parent'>
<div class='child'></div>
</span>
我有一个 JS 文件,其中包含以下代码:
var el = document.getElementById("parent").getElementsByClassName("child")[0];
el.onclick = someFuntion(this);
但问题是,我希望this
参数指向div.child
,这样当我点击Div时,它应该作为参数传递自己,作为DOM元素,使我能够像使用任何其他DOM元素一样在someFuntion(element)
中使用它:element#id
,例如。
尝试的解决方案:
el.addEventListener("click", someFuntion(event), false);
el.addEventListener("click", someFuntion(this), false);
el.addEventListener("click", someFuntion(el), false);
$("#parent #child").bind("click", someFuntion(this));
el.onclick = someFuntion(divIntoSpan);
解决方案:
el.onclick = 某个函数;
function someFunction(e){
if(e.target){
//remember to use "e.target" from here on, instead of only "e"
//e.id (error: undefined); e.target.id (correct)
}
}
el.onclick = someFunction(this);
时,你并没有传递一个函数指针。你实际上是将el.onclick
的值设置为someFunction(this)
的计算结果。 - Jason Gerardspan
元素只允许包含短语内容,而div
元素不允许。 - Andreas