使用Drupal_add_js / Jquery评估Node时未定义

时间:2013-10-28 14:53:55

标签: javascript jquery drupal drupal-7

我是Jquery的新手,但不是JS,PHP,Drupal等。甚至是stackoverflow的新手。

为了刷新网络摄像头图像,我用于在简单的HTML文件中进行测试,如下所示:

var URL = "http://webcam.tld/live.jpg";
var QueryString = "?random=RANDOM_NUMBER"; // simplified
$("#webcam").attr( "src", URL + QueryString ) ; 

这个工作!!!

在Drupal 7中,JS文件包含在:

<?php
drupal_add_js( 'sites/site_1/themes/t1/js/webcams.js' , 'file' ); 
print '<img id="webcam" src="http://webcam.tld/live.jpg" />';
?>

外部JS文件'webcams.js'听起来像这样:

jQuery(document).ready( function(){
    var URL = "http://webcam.tld/live.jpg";
    var QueryString = "?random=RANDOM_NUMBER";
    // This gives TypeError (see below)
    $("#webcam").attr( "src" , URL + QueryString ); 
    // THIS WORKS 
    alert( "Hello" ); 
} ) ;

我收到以下错误消息:

TypeError:'undefined'不是函数(评估'$(“#webcam”)')

我做错了什么?

感谢您的提示和关注。 汉斯

1 个答案:

答案 0 :(得分:0)

在Drupal7中,您需要将jQuery代码包装成函数,如下所示:

 // We define a function that takes one parameter named $.
(function ($) {
  // Here is our code
  // ...
}(jQuery));

或者,你可以在任何地方使用完整的'jQuery'而不是'$'。 您可以在https://drupal.org/node/171213上阅读更多内容 另外,我建议你使用Drupal行为(你想跟随drupal标准) http://blog.amazeelabs.com/en/comment/510193 - 关于drupal行为。