关于onclick事件的时候如何得到事件源对象,又能获得传递参数的问题

我现在有一个需求,既在触发一个点击事件后,既能得到事件源对象(event),又能得到传递过去的参数,前提是不用匿名函数。

例:
var a = 10;  //该a不是全局变量,此问题也是在不涉及全局变量的前提下如何实现;
object.onclick = method;

function method(event){
    //在该函数中,应该有两个参数,但是我只知道如何得到事件源(event);
    //如何即能得到event,又能得到上面的参数a呢?
}


麻烦各位大师给出个解决方案,感激。。。。。。

3个回答

最简单的办法 把数据存储到那个标签上的attribute上,然后随后读标签 查那个属性

如果jquery可以考虑data()

jinnianshilongnian
jinnianshilongnian 1、因为通过event可以拿到target 这样是可以的 2、写到一个特殊标签/直接写到一个全局变量中 其实都是可以的哦
7 年多之前 回复
sbololi
睡睡觉OOY 其实也说不通啊,在method方法中怎么得到这个标签呢?
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 因为事件触发不是你调用的 所以不可能传参数的
7 年多之前 回复
sbololi
睡睡觉OOY 这是个解决问题的办法,但是有没有对象传参的方式实现呢
7 年多之前 回复

event是js内置对象,应该不需要写在第一个参数里面
event.srcElement可以取到dom元素

var a = 10; //该a不是全局变量,此问题也是在不涉及全局变量的前提下如何实现;
object.onclick = method(a);

function method(aIn){
alert(aIn);
alert(event.srcElement);
}

hot002
hot002 <input type="text" onblur="whoDoesTest()"/> <script> function whoDoesTest(){ alert(event.srcElement.value); alert(event.srcElement.tagName); } </script>
7 年多之前 回复
sbololi
睡睡觉OOY 错误的,首先object. onclick=method 后面是不能加括号的,加了括号会得到该方法执行之后的结果。还有直接写event.srcElement 会报event未定义的错误
7 年多之前 回复

楼上正解,我说个我知道的方法。
var a = 10;
object.onclick = method;
m.prototype.a = a;
直接把a写到method的prototype上,用的时候取就行了。和attribute如出一辙。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐