我在我的HTML文件顶部的<script>
标记中有此代码。jQuery中的函数范围
$(document).ready(function()
{
$('#scrollbar1').tinyscrollbar();
$('a.jqtree_common').click(updateScrollbar());
});
$(function updateScrollbar()
{
var oScrollbar = $('#scrollbar1');
oScrollbar.tinyscrollbar();
oScrollbar.tinyscrollbar_update();
$('a.jqtree_common').click(updateScrollbar());
});
但由于某些原因,当我运行它,它说updateScrollbar()
是内(document).ready
不确定的。当我尝试在(document).ready
内部定义updateScrollBar()
时,updateScrollBar()
会陷入某种无限循环。
我的问题是双重的:
- 我能做些什么,以使
(document).ready
范围内定义updateScrollBar()
? - 有没有更好的方法将这个函数分配给
'a.jqtree_common'
元素?它们在运行时动态创建,并在使用网页时进行修改。我希望函数每次点击其中一个时就运行。
编辑:我想提出的$('a.jqtree_common').click(updateScrollbar);
分配每滚动更新时,因为我相信'a.jqtree_common'
元素上单击创建更'a.jqtree_common'
元素。
只是删除了'$('和')'周围的功能。 DOM不需要准备好声明该函数。 – Paulpro
当使用事件绑定时,该函数不需要(),或者当浏览器读取该行时将被调用。 –
@caps我们必须使用这个'.on('绑定动态元素的函数 –