Javascript 是否可以在页面主体中加载Jquery

Javascript 是否可以在页面主体中加载Jquery,javascript,jquery,codeigniter,external-script,Javascript,Jquery,Codeigniter,External Script,我正在使用CodeIgniter,我的一些视图需要jquery。因为它们必须在多个位置使用,所以它们必须在文件中调用jquery,但是由于它们引用的是外部文件,所以对$(document.ready)的调用会在加载jquery之前进行评估,因此会失败。在计算javascript之前,是否可以将jquery放在主体中并仍然加载它。或者,也可以通过某种方式将jquery是必需的这一事实通过CodeIgniter传递回头文件,这些头文件是在相关文件之前调用的 从某种角度来看: echo $this-&

我正在使用CodeIgniter,我的一些视图需要jquery。因为它们必须在多个位置使用,所以它们必须在文件中调用jquery,但是由于它们引用的是外部文件,所以对$(document.ready)的调用会在加载jquery之前进行评估,因此会失败。在计算javascript之前,是否可以将jquery放在主体中并仍然加载它。或者,也可以通过某种方式将jquery是必需的这一事实通过CodeIgniter传递回头文件,这些头文件是在相关文件之前调用的

从某种角度来看:

echo $this->import->js('jquery.js','jquery');
echo '<script type="text/javascript">
$(document).ready(function(){$(\'div#login.rounded\').corner();})
</script>';
echo$this->import->js('jquery.js','jquery');
回声'
$(document.ready(function(){$(\'div#login.rounded\).corner();})
';
您可以在以下位置查看该页面:


注意此页面实际上驻留在我的家用计算机上,因此预计recaptcha会失败。

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

我想答案是肯定的。您可以在
正文中加载
jQuery.js
。但是您必须只在
jQuery.js
声明之后编写脚本标记,否则可能会出现错误:)


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

jQuery确实应该在head元素中调用。以下是您如何有条件地(未经测试)执行此操作

在控制器中,需要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>


我的网站也是这样。我要做的是在所有页面上加载一个标题。在这个标题中,我做了
if($this->uri->segment(2)='controller')
。然后,如果控制器需要,我会加载jQuery和某些脚本。

我认为如果jQuery包含在每个页面的标签中,那就好了,此外,你可以使用jQuery的缩小版,它没有那么重。

嗯,也许我错了。但是当我查看您的源代码并遵循jquery文件的位置时:我得到一个“找不到页面”错误。所以我猜这可能是问题所在。可能您的php输出的方式不包括正确的域/子域?

我尝试过,但没有找到一种方法。我很想知道是否有其他人有。我不熟悉codigniter,但这似乎很有趣。。。
$this->import->js('jquery.js','jquery')
和手动调用整个
之间有什么区别?对不起,import是我构建的一个特殊对象,因此我不会多次写入对同一文件的引用。简言之,它会检查文件是否已被使用,然后返回脚本,但不会影响任何内容。我添加了一个链接。。。有人知道它为什么不起作用吗?哇,这是一个比我的好得多的主意。这就是我现在正在做的,它似乎不起作用。哦,对不起。就像我说的,它驻留在我的家用机器上,所以我需要对它进行一些更新才能访问jquery。好的,我已经解决了这个问题。但错误依然存在。PS谢谢你的提示。