代码很简单,如下,我希望得到的是弹出111,然后弹出2:<input type="button" id="a1" onclick="t1(this);" value="111" />
<script type="text/javascript">
var obj = document.getElementById("a1");
var b = obj.onclick;
obj.onclick = function (){
b(obj);// 怎么把这个obj代替上面的this传入?
alert(2);
}
function t1(obj){
// 这里得到的obj,总是window
alert(obj.value);
}
</script>不要告诉我直接用:
obj.onclick = function (){
t1(obj);// 因为这个t1是由别人提供的,命名谁知道是啥
alert(2);
}
<script type="text/javascript">
var obj = document.getElementById("a1");
var b = obj.onclick;
obj.onclick = function (){
b(obj);// 怎么把这个obj代替上面的this传入?
alert(2);
}
function t1(obj){
// 这里得到的obj,总是window
alert(obj.value);
}
</script>不要告诉我直接用:
obj.onclick = function (){
t1(obj);// 因为这个t1是由别人提供的,命名谁知道是啥
alert(2);
}
<input type="button" id="a1" onclick="t1(this);" value="111" />
<script type="text/javascript">
var ob = document.getElementById("a1");
var b = ob.onclick;
var that = '';
ob.onclick = function (){
that = this;
b(ob);// 怎么把这个obj代替上面的this传入?
alert(2);
}
function t1(obj){
// 这里得到的obj,总是window
alert(that.value);
}
</script>
<input type="button" id="a1" value="111" />
<script type="text/javascript">
var obj = document.getElementById("a1");
var b = obj.onclick;
obj.onclick = function (){
alert(this.value) //这里的this对象就是你的input
alert(2);
}</script>
<input type="button" id="a1" onclick="t1(this);" value="111" />
<input type="button" id="a2" onclick="t2(this);" value="222" />
<script type="text/javascript">
var ob2 = document.getElementById("a2");
var ob = document.getElementById("a1");
var c = ob2.onclick;
var b = ob.onclick;
var that = ''; //全局that要一个就行
ob.onclick = function (){
that = this;
b(ob);
alert(2);
}
ob2.onclick = function(){
that = this;
c(ob2);
alert(2);
}
function t1(obj){
alert(that.value);
}
function t2(obj){
alert(that.value);
}
</script>
一个全局的that就行
也就是说,下面这段代码是别人提供的:
<input type="button" id="a1" onclick="t1(this);" value="111" />
<script type="text/javascript">
function t1(obj){
// 这里得到的obj,总是window
alert(obj.value);
}
</script>
那么我能通过遍历页面得到这些Button,并希望在执行Button的事件时,再执行我自己的事件,就是这个目的,而这个Button的事件都有传递this参数进去。
<input type="button" id="a1" onclick="t1(this);" value="111" />
<script type="text/javascript">
var addEvent = function(oTarget, sType, fnHandler){
if(window.attachEvent){
oTarget.attachEvent("on" + sType, fnHandler);
}else if(window.addEventListener){
oTarget.addEventListener(sType, fnHandler, false);
}
}
var obj = document.getElementById("a1");
addEvent(obj, "click", function(){ alert("自己事件" + obj.value)})
function t1(obj){
// 这里得到的obj,总是window
alert('原有事件')
}
</script>