在你的js中添加如下原形声明:
Function.prototype.bind = function() {
var __method = this;
var arg = arguments;
return function() {
__method.apply(window, arg);
}
}
然后,你可以这样来写你的代码
row.onclick = test.bind(i);
Function.prototype.bind = function() {
var __method = this;
var arg = arguments;
return function() {
__method.apply(window, arg);
}
}
然后,你可以这样来写你的代码
row.onclick = test.bind(i);
解决方案 »
- 急~跪求~制作一个选择题在线测试网页的代码,能够检测答案正确与否并提示考生。
- 新人来此跪求解答javascript 表单验证功能失效
- 关于js表单验证
- 请教:网页内REALONE插件禁右键以及禁止浮动小按钮
- 谁在firefox里面用过onselectstart事件?
- 求个JS。。。急!!!!!!!
- 不知我页面上加了什么...搞到里面的某一个<td id ="color_inner">用innerHTML里非常慢
- 哪位大虾能提供一款jpg或gif转换成*.cur的转换工具。
- 调用桌面快捷方式
- 能在浏览器上输出曲线吗??
- 如何使页面所有text field 响应一个lostfocus 方法?
- 在javascript如何删除onmouseover事件?
alert(str);
}var row = tbody.insertRow()
row.onclick = function(){test(i);};
-------------------------------------
<html>
<script language=javascript>
function test()
{
for(var i=0;i<10;i++)
{
var tr = document.all.tb.insertRow();
var td = tr.insertCell();
td.innerHTML = "这是第"+i+"行";
tr.onclick = myfunc.bind(i,td);
}
}function myfunc(str,td)
{
alert(str+":"+td.innerHTML);
}Function.prototype.bind = function() {
var __method = this;
var arg = arguments;
return function() {
__method.apply(window, arg);
}
}
</script>
<body>
<input type=button value=test onclick=test()><br>
<table id=tb width=200 border=1>
<tr><td bgcolor=yellow>这里是表头部分</td></tr>
</table>
</body>
</html>
-------------------------------------
function test(str) {
alert(str);
}var row = tbody.insertRow()
row.onclick = function(){test(i);};
---------------------------------------------
这个可以正确的给row的onclick绑定带参数的函数,但有个问题,如方便,请运行如下页面看效果,你可能会发现,绑定的参数都变成了最后一次绑定的内容,不晓得是为什么?
-----------------------------------------------------------------------
<html>
<script language=javascript>
function test()
{
for(var i=0;i<10;i++)
{
var tr = document.all.tb.insertRow();
var td = tr.insertCell();
td.innerHTML = "这是第"+i+"行";
tr.onclick = function(){myfunc(i,td);};
}
}function myfunc(str,td)
{
alert(str+":"+td.innerHTML);
}
</script>
<body>
<input type=button value=test onclick=test()><br>
<table id=tb width=200 border=1>
<tr><td bgcolor=yellow>这里是表头部分</td></tr>
</table>
</body>
</html>
-----------------------------------------------------------------------
<script language=javascript>
function test()
{
alert('')
for(var i=0;i<10;i++)
{
var tr = document.getElementById("tb").insertRow();
var td = tr.insertCell();
td.innerHTML = "aa"+i+"hang";
tr.onclick = (function (i,td){return function(){myfunc(i,td);}})(i,td)
}
}function myfunc(str,td)
{
alert(str+":"+td.innerHTML);
}</script>
<body>
<input type=button value=test onclick="test()"><br>
<table id=tb width=200 border=1>
<tr><td bgcolor=yellow>1111111111</td></tr>
</table>
</body>
</html>查查闭包
不过还是要感谢高手们的指点,谢了!
我的网站 指点一下
http://www.bework.com.cn
请问mingxuan3000(铭轩)这种是什么意思,我还没用过这种写法。
我觉得大概是函数一次性调用的方法,是不是?
(function (i,td){return function(){myfunc(i,td);}})(i,td)