对于jQuery专家来说,这可能是一个快速的。我已经编写了自己的animate / popout脚本。但是当它在我的页面中实现时,我收到了一个错误 -
错误:$(“#boxWrapper .close”)为空
任何想法为什么?
我的完整代码在这里:jsfiddle
干杯
答案 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)
存在标记问题,我认为选择器不是最好的选择器