最近小颖接了个私活,客户要求用jquery和bootstrap来实现业务需求,小颖总结了下在写的过程中的一下坑,来记录一下

1.动态加载html文件

        switch (_domName) {
case 'firstMenu':
// 首页
$("main").load('home.html');
break
case 'secondMenu':
// 下拉菜单
$("main").load("dropdown.html");
break
case 'thirdMenu':
// 工具提示框
$("main").load("tooltips.html");
break
}

2.语音播报文字、暂停播报

function soundSpeak(text) {
const msg = new SpeechSynthesisUtterance();
msg.text = text; //播放文案
msg.volume = '1'; // 声音的音量,区间范围是0到1,默认是1。
msg.rate = '1'; // 语速,数值,默认值是1,范围是0.1到10,表示语速的倍数,例如2表示正常语速的两倍。
msg.pitch = '0'; // 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1。
msg.lang = 'zh-cn'; // 使用的语言,字符串, 例如:"zh-cn"
return msg;
}
var sound = window.speechSynthesis; // 定义局部变量
//播放
function playText(text) {
sound.speak(soundSpeak(text));
} //停止
function stopSpeak() {
$('.open_voice').removeClass('active');
$('.open_voice').attr("src", 'img/horn.png');
sound.cancel();
}

当切换菜单时需判断当前是否在播放

        if (sound.speaking) {
stopSpeak();
}

点击播放图标开始播放文字并切换图标

    // 语音播放文字
$("main").delegate("img.open_voice", "click", function () { //delegate给后加的节点绑定事件
if ($(this).hasClass('active')) {
stopSpeak();
} else {
$(this).addClass('active');
$(this).attr("src", 'img/horn_close.png');
playText($('.txt-box').text());
}
});

默认:

点击后:

再次点击后图标变成默认状态

3.使用 $(document).load("dropdown.html"); 动态加载的元素,要给其子元素添加点击事件时使用以下方法是不可行的:

    $('img.open_voice').click(function(){

    })

需使用以下放发才能绑定其点击事件:

方法一:

    $("main").delegate("img.open_voice", "click", function () {     //delegate给后加的节点绑定事件

    });

方法二:

    $(document).on("click", "img.open_voice", function () {     //给后加的节点绑定事件
alert(111111)
});

4.bootstrap 导航切换标记当前菜单

    // 切换一级菜单
$('p.nav-link').click(function () {
var _childMenu = $('.dropdown-item.menu-child.active').attr('name');
var _domName = $(this).attr('name');
// 切换菜单时移除上一个菜单的子菜单选中类名
if (_childMenu && _domName && _childMenu != _domName) {
$('.dropdown-item.menu-child').removeClass('active');
}
$('p.nav-link.active').removeClass('active');
$(this).addClass('active');
if (sound.speaking) {
stopSpeak();
}
switch (_domName) {
case 'firstMenu':
// 首页
$("main").load('home.html');
break
case 'secondMenu':
// 下拉菜单
$("main").load("dropdown.html");
break
case 'thirdMenu':
// 工具提示框
$("main").load("tooltips.html");
break
}
});

5.bootstrap工具提示框显、隐

点自己显示,点其他地方隐藏

    $('body').click(function () {
$("[data-toggle='popover']").popover('hide');
}) // 提示框点击事件
$("main").delegate(".tooltips-box span", "click", function (e) {
e.stopPropagation();
$('.tooltips-box span').removeClass('active_toggle');
$(this).addClass('active_toggle');
$("[data-toggle='popover']").popover('hide');
$(this).popover('show');
})

jquery+bootstrap学习笔记的更多相关文章

  1. bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120

    为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...

  2. Bootstrap~学习笔记索引

    回到占占推荐博客索引 bootstrap已经用了有段时间了,感觉在使用上还是比较容易接受的,在开发人员用起来上,也还好,不用考虑它的兼容性,手机,平台,PC都可以有效的兼容. bootstrap官方a ...

  3. Bootstrap学习笔记(二) 表单

    在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文 ...

  4. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

  5. Bootstrap学习笔记-布局

    Bootstrap学习笔记-布局 默认是响应式布局,就是你在改变页面的时候也不会出现乱的现象. <html><head> <meta charset="utf- ...

  6. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  7. Bootstrap学习笔记博客

    本片博客用于记录之后要用到Bootstrap的学习笔记   概括: Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASC ...

  8. bootstrap学习笔记--bootstrap安装环境

    Bootstrap 安装是非常容易的.此文是本人的学习汇总,便于以后查询学习,同时也希望给大家带来帮助. 下载 Bootstrap 您可以从 http://getbootstrap.com/ 上下载 ...

  9. Bootstrap学习笔记系列1-------Bootstrap网格系统

    Bootstrap网格系统 学习笔记 [TOC] 简单网格 先上代码再解释 <!DOCTYPE html> <html> <head> <title>B ...

随机推荐

  1. 鲜衣怒马散尽千金,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask钱包区块链虚拟货币三方支付功能

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_219 不得不承认,大多数人并不拥有或者曾经拥有加密货币.是的,Web3.0.加密货币.区块链,对于大多数的互联网用户来说,其实是一 ...

  2. [原创] RestartPC64-中文版v1.0.0.9

    原来发布的RestartPC-中文版和英文版v1.0.0.5,在PE64下无效.所以重新编译了64位版的RestartPC64-中文版v1.0.0.9,可以在PE64下面.正常Win64系统下面重启关 ...

  3. vue自定义switch开关,使用less支持换肤

    实际项目用到了,记录一下,也方便以后使用,这样也可以避免为了使用一个switch,引入整个外部web框架: 也可以方便更好的理解是和使用less. 基础代码使用的是网上的,然后自己添加了less换肤, ...

  4. 个人学习记录-Cpp基础-成员初始化列表

    Translator     Translator     参考链接: https://blog.csdn.net/XIONGXING_xx/article/details/115553291http ...

  5. java-运算符以及简单运用

    运算符: 1)赋值运算符:= 2)算术运算符:+-*/%,++,-- 3)关系运算符:>,<,>=,<=,==,!= boolean 4)逻辑运算符:&&,|| ...

  6. 如何开发一款基于 Vite+Vue3 的在线表格系统(上)

    今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 Vue是什么?大多前端开发者对这个词已毫不陌生了 ...

  7. 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式

    前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文将从零开始进行kub ...

  8. 【MySQL】从入门到掌握1-一些背景知识

    这个系列的文章带各位学习MySQL数据库. 不需要任何基础知识,便可以学习. 学习MySQL对学习Java的JDBC有很大的好处! 想要开发游戏服务器,那么学习MySQL也是必不可少的. 学习完本系列 ...

  9. 【Java】学习路径60-利用TCP协议接收多个客户端的数据

    import java.io.IOException; import java.net.*; public class TCP_Server { public static void main(Str ...

  10. C#通过反射实现简单的控制反转和依赖注入(一)

    Java项目中通过@Autowire便可以实现将对象实例化到指定的字段,无需手动new一个对象出来,用起来非常方便,因为Java类加载器在在加载过程会将扫描所有@Servie.@Mapper.@Com ...