最近小颖接了个私活,客户要求用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. 【原创】Python 二手车之家车辆档案数据爬虫

    本文仅供学习交流使用,如侵立删! 二手车之家车辆档案数据爬虫 先上效果图 环境 win10 python3.9 lxml.retrying.requests 需求分析 需求: 主要是需要车辆详情页中车 ...

  2. Python 爬取汽车之家口碑数据

    本文仅供学习交流使用,如侵立删!联系方式见文末 汽车之家口碑数据 2021.8.3 更新 增加用户信息参数.认证车辆信息等 2021.3.24 更新 更新最新数据接口 2020.12.25 更新 添加 ...

  3. Educational Codeforces Round 132 (Rated for Div. 2)

    Educational Codeforces Round 132 (Rated for Div. 2) A. Three Doors 简述 题意: 有三扇门(1~3), 其中两扇门后面有对应标号门的钥 ...

  4. 倒计时0日!Apache DolphineScheduler4月 Meetup 大佬手把手教你大数据开发,离线调度

    随着互联网技术和信息技术的发展,信息的数据化产生了许多无法用常规工具量化.处理和捕捉的数字信息.面对多元的数据类型,海量的信息价值,如何有效地对大数据进行挖掘分析,对大数据工作流进行调度,是保障企业大 ...

  5. 海豚调度直播来了 - 即将发版的1.3.0新特性及Roadmap路线

    在过去的3个多月,Apache DolphinScheduler(incuating)和DolphinScheduler社区发生了很多变化,今晚19:30在线直播将为大家介绍最新1.3.0的新特性及R ...

  6. BZOJ2286/Luogu2495 [Sdoi2011]消耗战 (虚树)

    // never forget open "Head.cpp", boy, never ! #include <iostream> #include <cstdi ...

  7. Ceph 块存储 创建的image 映射成块设备

    将创建的volume1映射成块设备 [root@mysql-server ceph]# rbd map rbd_pool/volume1 rbd: sysfs write failed RBD ima ...

  8. Linux 安装 Tomcat 详细教程

    Linux 安装Tomcat详细步骤 1. 前往tomcat官网复制下载链接, tomcat官网地址:https://tomcat.apache.org/ 2. 进入到指定目录,使用 wget 命令下 ...

  9. 一个dcache的性能问题分析

    如何识别并解决复杂的dcache问题 背景:这个是在centos7.6的环境上复现的,但该问题其实在很多内核版本上都有, 如何做好对linux一些缓存的监控和控制,一直是云计算方向的热点,但这些热点 ...

  10. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)

    学习ASP.NET Core Blazor编程系列一--综述 一.概述 Blazor 是一个生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 U ...