我从我的程序员那里得到了这个代码(外包):
<script type="text/javascript">
$(function(){
$('#notif-icons > li > a, #top-menu > li > a').click(function() {
var clicked = $(this).next('.popup-notif');
$('.popup-notif').not(clicked).fadeOut('fast');
clicked.slideToggle('fast');
}).toggle(function(){
$(document).click(function() {
$('.popup-notif').fadeOut('fast');
});
$('.popup-notif').click(function(e) {
e.stopPropagation();
});
}, function() {
});
});
</script>
该代码在纯HTML中单独工作,但是当我输入我的代码时,它将不再起作用,我认为该代码有问题。例如:
}, function() {
});
});
</script>
我不知道那个空函数()用于......你们可以帮助我吗?因为我不是JavaScript的专家......谢谢!
**更新:此代码用于显示通知。一旦“notif-icons”点击,“。popup-notif”出现,反之亦然。
答案 0 :(得分:2)
当你说你把它放在你的代码中时(你为什么不在那里使用'z'?!!),你的意思是,当你将它逐字复制到.js文件中时?如果是这样,你也不是要将<script>
元素复制到.js文件中吗?与HTML内联的JavaScript需要<script>
元素,.js文件中的JavaScript在.js文件中不需要<script>
和</script>
,仅在引用.js文件的HTML中< / p>
答案 1 :(得分:1)
代码实际上不是 坏。在这种情况下,toggle
被用作事件,而不是效果(见{{3 }})。传递给它的两个函数指定了对$('#notif-icons > li > a, #top-menu > li > a')
元素的偶数和奇数点击做什么。
JavaScript代码看起来会像它应该做的那样; 检查你的HTML是否正确。确保$('#notif-icons > li > a, #top-menu > li > a')
与正确的元素匹配,并且每个 .popup-notif
后面都放置了'#notif-icons > li > a, #top-menu > li > a'
个元素。如果你没有每次都把它弹出,当你点击菜单项时,弹出窗口可能会神秘地消失(对此的修复留给了读者)。
另外,确保在加载相关HTML后加载JavaScript;或者将其放在文件的底部,或者将其包装在$(document).ready(function(){[code goes here]})
。
不幸的是,您没有在我的问题中提供足够的细节,以便我提供更具体的答案; JavaScript需要上下文(即也给我们相关的HTML)。
我不知道你的个人技能水平是什么;但是一个快速提示:外包工作通常会导致代码工作,但不是很好。掌握他们正在使用的任何技术是一个好主意,这样你就可以理解和使用他们所做的工作,而不是完全依赖它们。