2013-02-15 167 views
10

我想弄清楚如何使用.prop(hidden:true)方法隐藏与JQuery的按钮。出于某种原因,在Chrome中,当我设置该值并查看html时,该按钮具有隐藏元素,但该按钮仍显示为在页面上可见。使用.prop隐藏按钮(隐藏:真)

任何想法?

+0

我想以编程方式做到这一点 - 这样我就可以传递一个值作为真或假,并隐藏按钮(而不是使用.hide/show方法) – 2scottish 2013-02-15 20:08:09

回答

24

按钮没有隐藏属性?

$('button').hide(); 

$('button').toggle(true); //shows button 
$('button').toggle(false); //hides button 
+0

是的 - 但请在原始帖子中看到我的评论,我需要以编程方式执行此操作。 – 2scottish 2013-02-15 20:08:50

+0

@ 2scottish - 好的,更改我的答案,是否更接近您找到? – adeneo 2013-02-15 20:22:58

+0

谢谢,我没有想过使用切换按钮,为了在我的上下文中正确工作,我必须否定传递给它的真/假值切换函数:$('button')。toggle(not(var)) - var从别处传递给函数。 – 2scottish 2013-02-15 20:41:32

1

您的语法不正确,但无论如何都没有“隐藏”属性。你可能想:

$('#your_button').hide(); 

或可能

$('#your_button').addClass('hidden'); 

如果你有在你的CSS “隐藏” 类。

您的语法的不正确部分是您的函数调用的参数表示不正确。设置属性应如下所示:

$("#your_button").prop("name", "value"); 
1

jQuery.prop是DOM节点上定义intended for HTML attributes only,事情。 CSS样式不适用于使用prop设置,hidden只是不存在,而hrefclass也适用。相反,您必须使用$(el).css('display', 'none')$(el).hide()

+0

Umm“隐藏”不是一个真正的CSS属性。然而,有'display:none'和'visibility:hidden'。 – Pointy 2013-02-15 17:36:35

+0

@Pointy不好意思,午饭时分心。虽然不改变'prop()'设置HTML/DOM属性的重点。 – 2013-02-15 17:46:49

+0

的确,你当然是对的。我想你会解决它:-) – Pointy 2013-02-15 18:02:35

2

您可以使用将display样式设置为none。例如,

$("#button").css("display", "none"); 

或者,.hide()为了简便起见,

$("#button").hide() 

还有visibilityopacity但是这两个可能不会产生你所期望的效果。

+0

谢谢。是的,.css(“display”,“none”)方法确实有效,我可以用一个变量替换“none”并以编程方式向它传递一个值。我宁愿只传递一个真/假值而不是字符串。 – 2scottish 2013-02-15 20:44:25

2

您可以使用jQuery的.prop()功能无法掩盖一个按钮,你可以选择使用.hide() or .fadeOut(),或者你可以用.css()方法试试:

.css()使用:

$('input[submit]').css('display','none'); 

使用​​:

$('input[submit]').fadeOut(); 

使用.hide()

$('input[submit]').hide(); 
+0

是的 - .css('display','none')选项在我的情况下是可用的,但我更喜欢传入true/false值,而不是使用'none'之类的东西。这就是我选择切换答案的原因。 – 2scottish 2013-02-15 20:46:45

0

如果你想使用的道具,然后

$("#my_button").prop("style").display="none" 

我会去W/O jQuery的。 (回到基本)

document.getElementById("mybutton").style.display = "none"; 
+1

一个可行的解决方案,但我更喜欢使用我可以传递真/假值的东西。 – 2scottish 2013-02-15 20:47:44

0

如果你碰巧在bootstrap4旁边使用jquery,你所描述的实际上是正确的。

只是做到以下几点: $element.prop('hidden', true);

如果没有引导4个可用它仍然是适用于现代的浏览器。