jQuery:错误:$(“#div.close”)为空

时间:2011-03-08 12:08:42

标签: jquery jquery-ui

对于jQuery专家来说,这可能是一个快速的。我已经编写了自己的animate / popout脚本。但是当它在我的页面中实现时,我收到了一个错误 -

  

错误:$(“#boxWrapper .close”)为空

任何想法为什么?

我的完整代码在这里:jsfiddle

干杯

4 个答案:

答案 0 :(得分:2)

Here是一个有效的例子

 $(document).ready(function() {
    $('#boxWrapper .close').css({"opacity": "0.0"});
    var panel1 =true;
        $('#boxWrapper .button').click(
        function() {

            if (panel1) {
                $('#boxWrapper .open').animate({"opacity": "0.0"}, "slow");
                $('#boxWrapper .close').animate({"opacity": "1.0"}, "slow");
                $('#boxWrapper').animate({"left": "-=200px"}, "slow", function() {panel1 = false;});
            }
            else {
                $('#boxWrapper .open').animate({"opacity": "1.0"}, "slow");
                $('#boxWrapper .close').animate({"opacity": "0.0"}, "slow");
                $('#boxWrapper').animate({"left": "+=200px"}, "slow", function() {panel1 = true;});
        }
        }
        );    
        });

答案 1 :(得分:1)

删除JS部分中的<script>标记。那些是语法错误。您的JS代码将由jsfiddle本身巧妙地放置在适当的设置中。

还要删除复制到HTML部分的<script>块。

然后,您需要定义“panel1”变量。

所有这些标签(joomla?)都不会在jsfiddle中做任何事情。

编辑 - 鉴于所有这些问题源于对jsfiddle如何运作的不熟悉,这些问题都不可能是你的实际问题。所以现在你知道了。无论如何,最有可能的问题是你在页面上可用之前尝试使用jQuery。但是,如果没有看到真正的代码,就很难说。

答案 2 :(得分:1)

合适的人。感谢您的回答,抱歉jFiddle使用不当。但我觉得它确实需要包括Joomla,因为这实际上是主要问题。

Joomla也使用了Mootools JSLibrary,

所以我需要设置一个noconflict();对于jQuery。并将$的所有引用更改为jQuery。

代码的实际答案是用jQuery替换$的所有引用。

jQuery(document).ready(function() {
    jQuery('#boxwrapper .close').css({"opacity": "0.0"});
    var panel1 =true;
        jQuery('#boxwrapper .button').click(
        function() {

            if (panel1) {
                jQuery('#boxwrapper .open').animate({"opacity": "0.0"}, "slow");
                jQuery('#boxwrapper .close').animate({"opacity": "1.0"}, "slow");
                jQuery('#boxwrapper').animate({"left": "-=200px"}, "slow", function() {panel1 = false;});
            }
            else {
                jQuery('#boxwrapper .open').animate({"opacity": "1.0"}, "slow");
                jQuery('#boxwrapper .close').animate({"opacity": "0.0"}, "slow");
                jQuery('#boxwrapper').animate({"left": "+=200px"}, "slow", function() {panel1 = true;});
     }
   }
 );    
});

答案 3 :(得分:0)

存在标记问题,我认为选择器不是最好的选择器

http://api.jquery.com/child-selector/