javascript - 如何切换此按钮以多次显示和隐藏
问题描述
我正在尝试创建一个小型实时聊天应用程序,我需要“聊天管理员”按钮在单击时打开聊天容器,并在再次单击时隐藏,就像切换效果一样。我尝试过使用,jQuery
toggleClass
但没有正确实现。
提前致谢。
$(document).ready(function(){
var chatbtn = $('.ph-chat-button');
wrap = document.createElement('div');
chatbtn.append('<span><i clas="fa fa-chat"></i> Chat Admin</span>');
chatbtn.on('click',function(ev){
ev.preventDefault();
$(this).empty();
$(this).append('<span><i clas="fa fa-chat"></i> Close Chat</span>');
createLogin();
$(this).removeClass('ph-chat-button').addClass('close-chat');
if($(this).hasClass('close-chat')){
$('.close-chat').click(function(){
$('.loginContainer').remove();
$(this).empty();
$(this).append('<span><i clas="fa fa-chat"></i> Chat Admin</span>');
chatbtn.toggleClass('close-chat ph-chat-button').parent().next().slideToggle();
});
}
});
$('.chat-login').on('submit',function(ev){
ev.preventDefault();
data = $(this).serialize();
console.log(data);
});
function createLogin(){
wrap.setAttribute('class','loginContainer animated bounceIn');
wrap.innerHTML = "<div class='box'>\
<div class='box-header'><div class='box-title'>Login</div></div>\
<div class='box-body'>\
<p class='help-block'> Enter your registered email address and click start chat to begin </p>\
<form method='post' action='chat.php' class='chat-login'>\
<div class='form-group col-md-12'>\
<label class='control-label'>Email</label>\
<input type='email' id='buyer_email' name='email' style='width:100%;margin-bottom:5%' class='form-control' placeholder='Email Address' required/>\
</div>\
<div class='text-center'><button class='btn btn-md btn-success btn'>Start Chat</button></div\
</form>\
<div class='js-alert-box'></div>\
</div></div>";
}
document.body.appendChild(wrap);
});
解决方案
试试这个方法。
var _on = false; //global flag
$(document).ready(function(){
var chatbtn = $('.ph-chat-button');
chatbtn.on('click',function(ev){
ev.preventDefault();
_on = !_on;
if(_on){
// Open the chat
}else{
// Close the chat
}
});
});
推荐阅读
- python-3.x - 使用 bpython shell,我如何在 shell 启动时预加载导入?
- java - 使用 JDK 17 (oracle) 的 DateTime 解析问题。漏洞?
- database - 尝试在 IoTDB 数据库中使用 python paho MQTT 插入数据时的 NPE
- firebase - 使用 firebase v9 在 vue beforeEach 方法中检查所需的身份验证
- python - 如何部分回滚?
- c - 将用户的二进制输入转换为双精度值时出错
- javascript - plotly typescript 的导出成员中缺少 maxdpeth
- pdf - 以编程方式标记 PDF 以实现可访问性
- java - Firebase Firestore 为存在的密钥提供 null pinter 异常
- c++ - 使用函数c ++打印结构指针