我在标题上做了一个快速的谷歌,并对所有这些我不理解的代码进行了抨击。
我已经进行了几年的JavaScript编程,并且对大多数概念感到满意。事件处理除外。这吓到我了!
问题
我有一个div,我编写了一个脚本,它根据鼠标位置垂直滚动div。
我得到容器的高度,以及“溢出”的内部容器的高度。
将它们除以得到一个“差分”,然后用这个差值多次移动鼠标位置,让div根据鼠标位置滚动。
它给了我一个漂亮干净的卷轴!
(如果有人想要更多关于这方面的信息请问)
我的问题是。该div的内容由ajax生成。
因此,当计算内部和外部div的高度的代码运行时,它会给出不正确的高度,因为它们已经被数据填充了。
所以我需要触发一个函数当ajax将数据复制到innerHTML以调用mousescroll函数时。
额外
问题:我有两个填充可滚动div的ajax调用。有时一个在另一个之前被取出,反之亦然。所以我需要mousescroll函数来触发WHEN,并且只有当两个ajax调用都将所有数据完全输入到他们可以使用的html中时!
我在想添加一个setTimeout但是...我不喜欢强迫我的脚本等待!
答案 0 :(得分:1)
我不是100%清楚问题出在哪里。你写道:“当ajax将数据复制到innerHTML以调用mousescroll函数时,我需要触发一个函数。” - 你需要帮助吗?如果您正在使用jQuery,那么您只需在success
的{{1}}回调函数内调用mousescroll函数。
然而,正如您所指出的那样,您提出的另一个问题很复杂:实际上有两个Ajax调用,并且您希望在调用mousescroll函数之前完成两个。要解决此问题,只需创建一个等于零的变量,然后在$.ajax
个回调中递增它。那些回调也会检查变量的值,如果它等于1(意味着Ajax调用已经完成),则调用mousescroll函数。
伪代码:
success
答案 1 :(得分:1)
根据您的描述,您需要在jQuery成功事件中处理ajax,然后在两个ajax事件完成后处理代码中的实际“完成”事件,并根据您的要求正确处理。