返回信息流使用jquery框架,有2种类型的js函数。不知道区别在哪里。
一种是在$(document).ready(function(){}之前的,
一种是在$(document).ready(function(){}内的。
<a href="javascript:test()">test</a>这里的test函数只能识别第一种函数,
如果将test()函数卸载$(document).ready(function(){}里面就说找不到test()。
但是如果写在$(document).ready(function(){}之外,jquery的很多特性都用不了。
谁能帮忙解答一下,万分感激!
这是一条镜像帖。来源:北邮人论坛 / www-technology / #10006同步于 2010/5/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
关于javascript的问题
sparrow
2010/5/18镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
提示找不到的原因是函数的定义在另一个函数内,lz去看一下js作用域和闭包的相关概念吧
为什么在ready外定义不能使用jquery特性。。。
【 在 sparrow (sparrow) 的大作中提到: 】
: 使用jquery框架,有2种类型的js函数。不知道区别在哪里。
: 一种是在$(document).ready(function(){}之前的,
: 一种是在$(document).ready(function(){}内的。
: ...................
我的<a href=javascript:test()>test</a>是使用的ext框架里面的grid生成的。
具体是这样的:
var testGrid = new Ext.grid.GridPanel({
......,
columns: [
......,
{header: "head1", width: 80, dataIndex: 'head1',
renderer: function(value,p,record){
if(value == -2)
return "<a class='test' href='javascript:test1()'>test1</a>";
else
return "<a class='test' href='javascript:test2()'>test2</a>";
}
.......
});
我想使用$(document).ready(function(){})内部的方法。但是我用
$('.test').click(function(){ alert("test"); })
却获取不到这个test类。是怎么回事呀?
【 在 huntman 的大作中提到: 】
: 这两种作用域不一样的,如果定义的function内的function,外面是访问不到的。不知道LZ想要什么特性。
: --
如果你的意思是<a class='test' href=javascript:test()>test</a>中的test()函数是写在$(document).ready(fucntion(){});中的,那这个test()是肯定访问不到的。
这样写就行了:
$(document).ready(function(){
function test(){}
$('a.test').click(function(){
test();
});
});
因为test()函数只有在他的作用域里才能被访问,这样写的话就可以在点击a的时候调用test函数
【 在 sparrow 的大作中提到: 】
: 我的<a href=javascript:test()>test</a>是使用的ext框架里面的grid生成的。
: 具体是这样的:
: var testGrid = new Ext.grid.GridPanel({
: ...................
$('.test').live("click",function(){ alert("test"); })
【 在 sparrow (sparrow) 的大作中提到: 】
: 我的<a href=javascript:test()>test</a>是使用的ext框架里面的grid生成的。
: 具体是这样的:
: var testGrid = new Ext.grid.GridPanel({
: ...................
问题是他的dom没加载完,不能根据test这个class找到节点...
【 在 xw2423 (静水之人) 的大作中提到: 】
: $('.test').live("click",function(){ alert("test"); })