4

我正在使用代码点火器,我的一些视图需要 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/

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

4

6 回答 6

2

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

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

于 2010-08-31T19:41:53.243 回答
2

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>
于 2010-08-31T19:44:11.203 回答
1

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

于 2010-08-31T19:40:16.323 回答
0

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

于 2010-08-31T19:44:30.147 回答
0

我认为如果每个页面的标签中都包含jQuery就可以了,而且你可以使用不那么重的缩小版的jQu​​ery。

于 2010-08-31T19:47:32.280 回答
0

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

于 2010-09-01T02:16:00.597 回答