无法读取未定义的值 'visibility' - J
Cannot read value 'visibility' of undefined - J
我正在使用 jQuery。每当调用 menu.tog 函数时,它似乎忘记了 'this' (菜单)是什么。我还尝试在函数中用 'menu' 替换 'this' 。
var usn = $("#userstuff");
var menu = $('#userinfo');
menu.height('0px');
menu.tog=function()
{
if (menu.css('visibility','hidden')=='hidden')
menu.css('visibility','visible');
else
menu.css('visibility','hidden');
}
这应该有效:
// only use 'menu', not '$(menu)' and don't write 'px'
// or in one row: var menu = $('#userinfo').height(0);
var menu = $('#userinfo');
menu.height(0);
// however your `tog` function is called, there may be not referenced
// to 'this', instead use 'menu'
// but keep in mind, 'menu' is a jQuery object here, not a DOM element
menu.tog = function() {
if ( menu.css("visibility") == "hidden" ) {
menu.css("visibility", "visible");
}
else {
menu.css("visibility", "hidden");
}
// or in one line too:
// menu.css("visibility", menu.css("visibility") == "hidden" ? "visible" : "hidden");
};
menu.tog();
如果您只需要切换可见性,只需这样做:
$('#toggle').click(function() {
$('#test').toggle();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="test">TOGGLE ME</span>
</br>
<button id="toggle">CLICK TO TOGGLE</button>
要正确扩展 jquery,请使用 jQuery.fn.extend。然后,当您引用它时,您将引用正确的对象。
jQuery.fn.extend({
tog: function() {
return this.each(function() {
this.style.visibility = this.style.visibility == 'hidden' ? 'visible':'hidden';
});
}
});
我正在使用 jQuery。每当调用 menu.tog 函数时,它似乎忘记了 'this' (菜单)是什么。我还尝试在函数中用 'menu' 替换 'this' 。
var usn = $("#userstuff");
var menu = $('#userinfo');
menu.height('0px');
menu.tog=function()
{
if (menu.css('visibility','hidden')=='hidden')
menu.css('visibility','visible');
else
menu.css('visibility','hidden');
}
这应该有效:
// only use 'menu', not '$(menu)' and don't write 'px'
// or in one row: var menu = $('#userinfo').height(0);
var menu = $('#userinfo');
menu.height(0);
// however your `tog` function is called, there may be not referenced
// to 'this', instead use 'menu'
// but keep in mind, 'menu' is a jQuery object here, not a DOM element
menu.tog = function() {
if ( menu.css("visibility") == "hidden" ) {
menu.css("visibility", "visible");
}
else {
menu.css("visibility", "hidden");
}
// or in one line too:
// menu.css("visibility", menu.css("visibility") == "hidden" ? "visible" : "hidden");
};
menu.tog();
如果您只需要切换可见性,只需这样做:
$('#toggle').click(function() {
$('#test').toggle();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="test">TOGGLE ME</span>
</br>
<button id="toggle">CLICK TO TOGGLE</button>
要正确扩展 jquery,请使用 jQuery.fn.extend。然后,当您引用它时,您将引用正确的对象。
jQuery.fn.extend({
tog: function() {
return this.each(function() {
this.style.visibility = this.style.visibility == 'hidden' ? 'visible':'hidden';
});
}
});