设置HTML事件问题,超级宇宙级难题 这里不能写this可以把this写在前面,比如obj=thisHTMLobj.setAttribute("onclick",obj.run()); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里不能写this可以把this写在前面,比如obj=thisHTMLobj.setAttribute("onclick",obj.run());关键问题不在这里,关键是obj.run()这个函数没有被设置为onclick="obj.run()"而是直接执行了obj.run(),明白了吗? 设置的时候采用new Fucntion(obj+".run()") 你alert(obj+".run()")一下这个吧,看看是不是我们想要的 不对吧。obj=thisHTMLobj.setAttribute("onclick",obj.run());这样写和 this.run();是一样的this指针并没有传到函数内如果this.run函数中没有this关键字,那么这么写就能正确执行而 new Fucntion(obj+".run()")也是不对的obj是对象,转换成字符串的结果也无法运行吧.Function.prototype.bind = function(o){ var m = this; var a = arguments; return function(){ m.apply(o,a); }}HTMLobj.setAttribute("onclick", obj.run.bind(this)); 说白了,我要得到是把this.run()转换成字符串例如this 为 a,我则想要 "a.run()" 的字符串this 为 b,我则想要 "b.run()"的字符串问一下,怎么实现? <input type="button" id="btn1" value="click me!"><input type="button" id="btn3" value="click me!"><script>function setonclickevent(HTMLobj) //一个HTML标签例如Button{ HTMLobj.run = function() { alert(this.id); } HTMLobj.onclick = function () { this.run(); }}setonclickevent(btn1);setonclickevent(btn3);</script> 感觉楼主的思路其实应该重新整理下,按照现在的逻辑下面的到是可以实现,不过感觉很别扭<script language=javascript> function setonclickevent(HTMLobj,flag) //一个HTML标签例如Button { this.run=function() { alert(); } if(flag) { HTMLobj.onclick=function(){new setonclickevent(HTMLobj,false).run()};//设置HTML标签的属性 onclick } }</script><input name="button1" type=button><input name="button2" type=button onclick="new setonclickevent(document.getElementById('button1'),true).run()"> hbhbhbhbhb1021(天外水火(我要多努力)) 如果我想把onclick也想封装到函数怎么做?我是通过一个函数来做的,但就是实现不了 to fantiny:是哦,最近放点代码就当恭喜我了吧,呵呵<script language=javascript> function aa(temp) { new setonclickevent(temp,false).run() } function setonclickevent(HTMLobj,flag) //一个HTML标签例如Button { this.run=function() { alert(); } if(flag) { HTMLobj.attachEvent("onclick",new Function("aa\(''\)")); } } </script><input name="button1" type=button><input name="button2" type=button onclick="new setonclickevent(document.getElementById('button1'),true).run()"> 如何实现定时自动登录? js控制flash制作的进度条 帮我看一下代码错误问题 关于document.write("")方法在IE浏览器和火狐浏览器下面的兼容性问题 各位高手前辈,我这里有个超级简单的小小网页JSP程序,帮忙看看。 js 如何 实现div 在限定范围内托动 一个range的问题 请问如何多个function共用一个ajax []如何实现像163或新浪的按添加附件,然后弹出一个文本框的功能? 注册用户表,需要获得表单一项的值,然后从数据库验证是否重复 有没有支持FireFox的从右到左连无缝续滚动图片的脚本? window.open的问题,高手帮忙阿~~~
可以把this写在前面,比如
obj=this
HTMLobj.setAttribute("onclick",obj.run());
关键问题不在这里,关键是obj.run()这个函数没有被设置为onclick="obj.run()"
而是直接执行了obj.run(),明白了吗?
new Fucntion(obj+".run()")
HTMLobj.setAttribute("onclick",obj.run());
这样写和 this.run();是一样的
this指针并没有传到函数内
如果this.run函数中没有this关键字,那么这么写就能正确执行
而 new Fucntion(obj+".run()")也是不对的
obj是对象,转换成字符串的结果也无法运行吧.Function.prototype.bind = function(o){
var m = this;
var a = arguments;
return function(){
m.apply(o,a);
}
}
HTMLobj.setAttribute("onclick", obj.run.bind(this));
例如
this 为 a,我则想要 "a.run()" 的字符串
this 为 b,我则想要 "b.run()"的字符串
问一下,怎么实现?
<input type="button" id="btn3" value="click me!">
<script>
function setonclickevent(HTMLobj) //一个HTML标签例如Button
{
HTMLobj.run = function()
{
alert(this.id);
}
HTMLobj.onclick = function ()
{
this.run();
}
}
setonclickevent(btn1);
setonclickevent(btn3);
</script>
<script language=javascript>
function setonclickevent(HTMLobj,flag) //一个HTML标签例如Button
{
this.run=function()
{
alert();
}
if(flag)
{
HTMLobj.onclick=function(){new setonclickevent(HTMLobj,false).run()};//设置HTML标签的属性 onclick
}
}
</script>
<input name="button1" type=button>
<input name="button2" type=button onclick="new setonclickevent(document.getElementById('button1'),true).run()">
我是通过一个函数来做的,但就是实现不了
<script language=javascript>
function aa(temp)
{
new setonclickevent(temp,false).run()
}
function setonclickevent(HTMLobj,flag) //一个HTML标签例如Button
{
this.run=function()
{
alert();
}
if(flag)
{
HTMLobj.attachEvent("onclick",new Function("aa\(''\)"));
}
}
</script>
<input name="button1" type=button>
<input name="button2" type=button onclick="new setonclickevent(document.getElementById('button1'),true).run()">