是否可以在页面正文中加载Jquery

时间:2010-08-31 19:36:43

标签: javascript jquery codeigniter external-script

我正在使用代码点火器,我的一些视图需要jquery。因为它们必须在多个地方使用,所以它们必须在其文件中调用jquery,但是由于它们引用了外部文件,因此在加载jquery之前会对$(document.ready)的调用进行评估,因此会失败。是否有可能将jquery放入正文并在评估javascript之前仍然加载它。或者,是通过代码点火器将jquery返回到标题中的一些方法,这些标题在相关文件之前被调用。

在视图中:

echo $this->import->js('jquery.js','jquery');
echo '<script type="text/javascript">
$(document).ready(function(){$(\'div#login.rounded\').corner();})
</script>';

您可以在http://formulator.codingproject.net/content/login/

查看该页面

注意此页面实际上位于我的家庭计算机上,因此预计重新连接会失败。

6 个答案:

答案 0 :(得分:2)

我猜答案是肯定的。您可以在jQuery.js中加载body。但是你必须在jQuery.js声明之后编写你的脚本标签,否则你可能会出错:)

PS :请纠正我如果我错了:)

答案 1 :(得分:2)

应该在head元素中调用jQuery。这是你如何有条件地做(未经测试)。

在你的控制器中,每个需要jQuery的函数应该有:

$data['need_jquery'] = true;
$this->load->view('header');

在标题视图中:

<head>
    <? if($need_jquery) { ?>
        <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" /></script>
    <? } ?>
</head>

答案 2 :(得分:1)

看起来你在使用PHP?如果是这样,请创建一个返回该字符串的静态方法,但前提是它尚未包含此请求。然后你可以确保它只被包含一次。

答案 3 :(得分:0)

我的网站是一样的。我所做的是我有一个标题加载在所有页面上。在那个标题中我做if($this->uri->segment(2) == 'controller')。然后我根据需要为该控制器加载jQuery和某些脚本。

答案 4 :(得分:0)

我认为如果将jQuery包含在每个页面的标记中都会没问题,此外,你可以使用不那么重的jQuery的缩小版本。

答案 5 :(得分:0)

呃,也许我错了。但是,当我查看您的源代码并关注jquery文件的位置时:http://www.formulator.com/assets/scripts/jquery/jquery.js我收到“无法找到页面”错误。所以我猜这可能是问题所在。也许你的php输出它的方式不包括正确的域/子域名?