Javascript 为什么show()只在瞬间起作用?
我正在尝试让列表项在单击时显示。当我使用hide()方法时,它们一开始是隐藏的,但是当我添加show()方法时,它只工作大约一毫秒。不确定是否是因为它总是默认回到原始设置?我基本上只想点击主列表Javascript 为什么show()只在瞬间起作用?,javascript,jquery,Javascript,Jquery,我正在尝试让列表项在单击时显示。当我使用hide()方法时,它们一开始是隐藏的,但是当我添加show()方法时,它只工作大约一毫秒。不确定是否是因为它总是默认回到原始设置?我基本上只想点击主列表 单击链接时,整个页面将刷新。这意味着您的代码将再次运行: $('.sublist').hide(); 您应该做的是防止出现如下默认行为: $(".mainlist").on('click', function(event) { $('.sublist').show();
单击链接时,整个页面将刷新。这意味着您的代码将再次运行:
$('.sublist').hide();
您应该做的是防止出现如下默认行为:
$(".mainlist").on('click', function(event) {
$('.sublist').show();
event.preventDefault();
});
单击链接时,整个页面将刷新。这意味着您的代码将再次运行:
$('.sublist').hide();
您应该做的是防止出现如下默认行为:
$(".mainlist").on('click', function(event) {
$('.sublist').show();
event.preventDefault();
});
问题是,当您单击那些
a
元素时,页面会被重新加载,因为它们上有href=“”
。因此div开始是隐藏的,然后单击显示它们,但随后页面刷新,它们又回到隐藏状态(因为这是新加载页面上的默认状态,这要归功于页面就绪回调中的hide
调用)
如果不希望跟踪这些链接,请通过jQuery处理程序中的preventDefault
(或returnfalse
)单击它们时阻止默认操作:
$(function() {
$('.sublist').hide();
$(".mainlist").on('click', function(e) {
e.preventDefault();
$('.sublist').show();
});
})
实例:
$(函数(){
$('.sublist').hide();
$(“.mainlist”)。在('click',函数(e){
e、 预防默认值();
$('.sublist').show();
});
})
-
-
-
问题在于,当您单击那些a
元素时,页面会被重新加载,因为它们上面有href=“”
。因此div开始是隐藏的,然后单击显示它们,但随后页面刷新,它们又回到隐藏状态(因为这是新加载页面上的默认状态,这要归功于页面就绪回调中的hide
调用)
如果不希望跟踪这些链接,请通过jQuery处理程序中的preventDefault
(或returnfalse
)单击它们时阻止默认操作:
$(function() {
$('.sublist').hide();
$(".mainlist").on('click', function(e) {
e.preventDefault();
$('.sublist').show();
});
})
实例:
$(函数(){
$('.sublist').hide();
$(“.mainlist”)。在('click',函数(e){
e、 预防默认值();
$('.sublist').show();
});
})
-
-
-
有两个问题:
首先,您有直接嵌套在li
元素中的li
元素-如果您想要一个“子列表”,您需要将子项包装在ul
中(请参见下面修改的代码)
其次,正在跟踪链接,这导致页面刷新。如果您只想显示子列表
项,则应在事件中使用(请参阅下面的修改代码)
//没有冲突安全文档准备就绪
jQuery(函数($){
$('.sublist').hide();
//单击事件接受“事件”的一个参数
$(“.mainlist”)。在('click',函数(e){
//阻止默认的“单击”操作(即加载链接指向的url)
e、 预防默认值();
$('.sublist').show();
});
})
-
-
-
有两个问题:
首先,您有直接嵌套在li
元素中的li
元素-如果您想要一个“子列表”,您需要将子项包装在ul
中(请参见下面修改的代码)
其次,正在跟踪链接,这导致页面刷新。如果您只想显示子列表
项,则应在事件中使用(请参阅下面的修改代码)
//没有冲突安全文档准备就绪
jQuery(函数($){
$('.sublist').hide();
//单击事件接受“事件”的一个参数
$(“.mainlist”)。在('click',函数(e){
//阻止默认的“单击”操作(即加载链接指向的url)
e、 预防默认值();
$('.sublist').show();
});
})
-
-
-
由于您使用的是锚定标记,并且有一个空的href
属性,因此默认行为应该是在锚定单击时重定向页面。解决方法是在单击回调中使用href=“javascript:void(0)”
或事件.preventDefault()
$(函数(){
$('.sublist').hide()
$(“.mainlist”)。在('click',函数(e){
/*这里,防止重定向*/
如果(e){e.preventDefault()}
$('.sublist').show()
})
})
-
-
-
由于您使用的是锚定标记,并且有一个空的href
属性,因此默认行为应该是在锚定单击时重定向页面。解决方法是在单击回调中使用href=“javascript:void(0)”
或事件.preventDefault()
$(函数(){
$('.sublist').hide()
$(“.mainlist”)。在('click',函数(e){
/*这里,防止重定向*/
如果(e){e.preventDefault()}
$('.sublist').show()
})
})
-
-
-
这部分代码:
$(".mainlist").on('click', function() {
$('.sublist').show();
});
指示仅在单击事件期间显示列表
为什么不改用fadeIn()effects函数呢
$(“#出现”).hide();
$(“#单击我”)。单击(函数(){
$(“#出现”).fadeIn(“慢”,函数(){
});
});代码>
点击这里