为什么当我在 jQuery 中添加切换事件时我的按钮消失了
why does my button disappear when I add the toggle event in jquery?
我想在粗体和正常之间切换文本 我为它编写了这段代码,但是当我打开页面时,粗体按钮消失了?
$("#bold").toggle(function() {
$('.focus').css("font-weight", $(this).val());
}, function() {
$('.focus').css("font-weight", "normal");
});
我的代码有问题吗?请帮忙,提前谢谢。
假设您使用的是jQuery 1.9或更高版本,问题是.toggle()
事件处理方法已从库中删除。因此,您实际调用的是隐藏/显示元素的.toggle()
函数。(在早期版本的jQuery中,这两个函数都存在,jQuery根据传入的参数找出你的意思。
您可以使用标准.click()
处理程序轻松实现自己的切换:
$("#bold").click(function() {
var f = !$(this).data("toggleFlag");
if (f) {
$('.focus').css("font-weight", $(this).val());
} else {
$('.focus').css("font-weight", "normal");
}
$(this).data("toggleFlag", f);
});
这使用 .data()
方法来跟踪布尔标志以指示要执行的代码。第一次调用点击处理程序时,标志将作为undefined
返回,因为它以前没有设置过,但我们只是将其转换为带有!
的布尔值(假设你想在第一次点击时执行 if 而不是 else 情况)。
它消失了,因为该版本的切换已被弃用并删除,而在较新版本的jQuery中,它所做的只是切换可见性。
你可以做这样的事情:
var state = true;
$("#bold").on('click', function() {
$('.focus').css("font-weight", state ? this.value : 'normal');
state = !state;
});
小提琴
单击后我发现消失元素的唯一解决方案...是切换效果完成后的回调函数。这里有一个解释回调函数的链接。
这是我的代码:
jQuery('.menu li.item-487').click(function(){
jQuery('#main-menu .moduletable .menu li').toggle("slow",function(){jQuery('.menu li.item-487').css('display' , 'block');});
});
相关文章:
- 为什么我的点击事件没有使用 react js 触发
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 如何使用我的Jquery代码创建委托事件侦听器
- 为什么动态加载的事件在我的代码中不能正常工作
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 为什么我的on change事件在ie9上返回空
- 在我的JavaScript模块中绑定一个点击事件
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 鼠标事件,我的代码出了什么问题
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 为什么我的onchange事件发生在页面加载时,而不是在触发时
- 为什么我的Jquery.ajax调用会触发错误事件
- 为什么点击或更改事件都没有触发我的函数
- 为什么我从 JSLint 获得从事件调用的函数的“超出范围”
- 将 OnClick 事件附加到我的标签 - JavaScript.亚德夫.
- 为什么IE浏览器不喜欢我的点击事件
- 为什么我的点击事件没有触发
- 我的链接按钮的OnClick事件永远不会被触发
- 将我的nextPage()函数编写为全局函数,以便onclick事件可以访问它
- 为什么我的javascript鼠标事件没有启动