我有一些我为我的工作继承的javascript.在这个javascript中,我们有一个不断更新的侧栏(每1到10分钟左右).在脚本中,我们从服务器解析并处理AJAX,然后我们调用一个有趣的函数.
function renewClicks(){
$('.classElem').unbind('click');
$('.classElem2').unbind('click');
$('.classElem3').unbind('click');
$('.classElem').click(elm1funct);
$('.classElem2').clikc(elm2funct);
$('.classElem3').click(elm3funct);
}
Run Code Online (Sandbox Code Playgroud)
其中.classElem是一个css类选择器,它附加到添加到页面的每个图像.elmfunct是为处理点击而编写的函数.这将在每次更新时运行(取消授权有效的已添加元素,然后重新添加所有元素).我想知道是否有一种方法可以在DOM中的body元素上附加一个监听器,这样就可以处理添加到页面并继承css类的所有图像元素,因此不会取消注册并重新注册在每次更新时注册.
感谢您提供的任何信息.
我试图找出使用Big O表示法的for循环的复杂性.我之前在其他课程中已经完成了这个,但是这个比其他课程更严格,因为它是在实际的算法上.代码如下:
for(cnt = 0, i=1; i<=n; i++) //for any size n
{
for(j = 1; j <= i; j++)
{
cnt++;
}
}
Run Code Online (Sandbox Code Playgroud)
和
for(cnt = 0, i=1; i<=n; i*=2) //for any size n
{
for(j = 1; j <= i; j++)
{
cnt++;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经到了,第一个循环具有O(n)复杂性,因为它经过n次列表.至于第二个循环,我有点迷失.我相信,对于每个被测试的n,它都会经历一次循环.我(错误地)假设这意味着每次评估循环都是O(n*i).在我的假设中是否有任何我遗漏的东西.我知道cnt ++是恒定的时间.
感谢您在分析中提供的帮助.每个循环都在自己的空间中,它们不在一起.
我继承了我需要为我的工作更新的代码库.我正在慢慢地学习他们正在尝试使用现有的闭包来完成什么,但是在尝试更新使用此功能的网站的一部分时我遇到了困难.我将给出代码试图完成的基本概述,看看是否有人可以提供帮助.
var TheObject = (function (){
var veryLargeDependantData = {
var1: {},
var2: {},
var3: [],
//Set these variables via functions
function1: function f1(data){...},
function2: function f2(data){...},
initialize: function initialize() { //set values for var1... var3}
};
return {initialize: veryLargeDependentData.initialize};
})().initialize();
Run Code Online (Sandbox Code Playgroud)
由于我显然无法在网站上显示生产代码,因此必须这样做.但基本上,VeryLargeDependentData变量是函数的入口.当页面加载时,它调用初始化函数,一切都很愉快.但是现在我需要将它添加到onclick事件和旧页面,而firebug控制台说该变量是未定义的.在其他页面中,我可以毫无问题地使用它.
我的问题是,正在发生什么导致闭包不能成为像这样的可调用命名空间的一部分.我有点像javascript nOOb,所以如果问题听起来有误,我会道歉.
onclick='TheObject.initialize();'
Run Code Online (Sandbox Code Playgroud)