在div load上没有调用jquery函数

时间:2014-12-03 11:40:48

标签: jquery function

我已经建立了一个简单的词云生成器功能,当字云应该显示的div已经加载时,它会被触发。

此功能用于我的网络应用程序的两个不同页面。

以下是保存在名为 keywords.js

的文件中的jquery
var text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus id tincidunt purus. Maecenas mi erat, gravida eget nisl vel, ultricies vehicula leo.";
var word_list = text.split(/\W+/);
var used;

function populateKeywordCloud(wordCount, selector) {
for (i = 0; i < wordCount ; i++) {
    used = Math.floor((Math.random() * 10) + 1);
    $(selector + ' #keyword_cloud .dataBoxContent').append('<span class="cloud_' + used + '" title="Keyword used ' + used + ' times" ">' + word_list[i] + '</span> ');
}
}

$('.summary_page').ready(function () {
populateKeywordCloud(30, '.summary_page');
});    

HTML:

<section class="dataBox" id="keyword_cloud">
        <header class="dataBoxHeader">
            <a href="keyword_cloud.html" title="View more">Keyword Cloud <img src="img/view_more.svg" height="12" title="View more" class="view_more" /></a>
            <div class="minimise">
                <img src="img/minimise.svg" title="Minimise section" class="minIcon" width="15" height="15" onclick="toggleDataBox('keyword_cloud')" />
            </div>
        </header>
        <div class="dataBoxContent">                
        </div>
        <a href="keyword_cloud.html" class="view_more_summaryP" title="Click for more information">View more</a>
</section>

但由于某种原因,populateKeywordCloud()函数不会运行。我做了一些调试,看到这个方法永远不会被解雇。

但奇怪的是,当我将以下代码放在此项目中的另一个.js文件中时,该函数会被触发并显示我的文字云。

$('.summary_page').ready(function () {
populateKeywordCloud(30, '.summary_page');
});

这对我来说很奇怪。任何人都知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

http://api.jquery.com/ready/“在DOM准备就绪后执行的函数。”

你不能那样使用。 .ready()仅用于了解DOM的加载时间。

(文档)$。就绪(功能);是要走的路。 (当加载所有DOM时)没有选择器

但是,我不知道为什么函数会在另一个文件中被触发。也许选择器搞砸了什么。

答案 1 :(得分:0)

抱歉浪费每个人的时间!我正在调用另一个从我调用函数的页面中缺少的.js函数。

现在一切正常。