<6/2 周五>jQuery中的事件

本文介绍了JavaScript中各种事件的基础知识,包括窗口事件、鼠标事件、键盘事件及表单事件等,并详细讲解了如何通过bind和unbind方法绑定和移除事件监听器,同时探讨了hover和toggle等复合事件的应用。

基础时间

事件名=“函数名()”;或DOM  对象.事件名=函数;

1)window事件

当用户会执行某些影响浏览器的操作时,触发的时间。

2)鼠标事件

用户在文档上单击或移动鼠标时产生的事件。

3)键盘事件

当键盘聚焦到Web浏览器时,用户每次按下或释放键盘上的按键时都会产生事件。

4)表单事件

是所有事件类型中最稳定、且支持最稳定的事件之一。


绑定事件与移除事件

绑定事件

语法:bind(type,[date],fn)

移除事件

语法:unbind([type],[fn])


复合事件

hover()方法

模拟鼠标指针悬停事件

语法:hover(enter,leave);

toggle()方法

模拟鼠标连续click事件

语法:toggle(fn1,fn2,······,fnN);


<div class="container-fluid" id="print_div" style="padding-bottom: 30px;width: 80%;margin-top: 40px;"> <div class='responsive-table'> <div class='scrollable-area' style=""> <div id="print_title1"> <h2 style="text-align:center;">营养改善计划食堂供餐食材配送情况一览表</h2> </div> <table id="mydatatables" class="table table-striped table-bordered" border="0" bordercolor="#000000"> <thead> <tr> <th style="text-align:center;"><input type="checkbox" id="checkAll" class="check-all"></th> <th style="text-align:center;">学校名称</th> <th style="text-align:center;">物品名称</th> <th style="text-align:center;">周一</th> <th style="text-align:center;">周二</th> <th style="text-align:center;">周三</th> <th style="text-align:center;">周四</th> <th style="text-align:center;">周五</th> <th style="text-align:center;">合计1</th> <th style="text-align:center;">合计2</th> <!-- 新增合计列 --> <th style="text-align:center;">配送时间</th> <th style="text-align:center;display:none;">操作</th> <!-- 新增操作列 --> </tr> </thead> <tbody> <c:forEach var="list" items="${list}" varStatus="i"> <tr class="tr_${i.index+1}" data-gid="${list.GID}" data-wpbh="${list.wpbh}" data-dwmc="${list.dwmc}"data-wpmc="${list.wpmc}" data-MONDAY="${list.MONDAY}" data-TUESDAY="${list.TUESDAY}" data-WEDNESDAY="${list.WEDNESDAY}"data-THURSDAY="${list.THURSDAY}" data-FRIDAY="${list.FRIDAY}" data-HJ="${list.HJ}" data-HJ2="${list.HJ2}"data-KSSJ="${list.KSSJ}" data-JSSJ="${list.JSSJ}" data-saasdm="${list.saasdm}"> <td style="text-align:center;"> <input type="checkbox" class="check-item"> </td> <td class="num " style="text-align:center;"> ${list.DWMC} </td> <td class="num " style="text-align:center;"> ${list.WPMC} </td> <td class="num" style="text-align:right;"> <%-- ${list.MONDAY} --%> ${list.MONDAY}${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} </td> <td class="num" style="text-align:right;"> ${list.TUESDAY}${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} <%-- ${list.TUESDAY} --%> </td> <td class="num" style="text-align:right;"> ${list.WEDNESDAY}${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} <%-- ${list.WEDNESDAY} --%> </td> <td class="num" style="text-align:right;"> ${list.THURSDAY}${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} <%-- ${list.THURSDAY} --%> </td> <td class="num" style="text-align:right;"> ${list.FRIDAY}${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} <%-- ${list.FRIDAY} --%> </td> <td class="num" style="text-align:right;"> ${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? list.HJ2 : list.HJ} </td> <!-- <td class="num" style="text-align:right;"> --> <%-- ${list.HJ} --%> <!-- </td> --> <!-- <td class="num" style="text-align:right;"> --> <%-- ${list.HJ2} --%> <!-- </td> --> <td class="num" style="text-align:right;"> ${list.HJ2} ${list.WPMC == '大米(g)' ? '袋' : ''} ${list.WPMC == '面粉(g)' ? '袋' : ''} ${list.WPMC == '食用油(g)' ? '桶' : ''} ${list.WPMC == '鸡蛋(个)' ? '个' : ''} ${list.WPMC == '牛奶(盒)' ? '盒' : ''} ${list.WPMC == '鸡肉' || list.WPMC == '猪肉' ? 'kg' : ''} </td> <!-- <td class="num" style="text-align:right;"> --> <%-- <input type="text" id="txt_PSSJ" class="form-control input-radius date" name="PSSJ" value="${list.PSSJ}"> --%> <!-- </td> --> <!-- 配送时间输入框使用类选择器 --> <td class="num" style="text-align:right;" onclick="handleClick()"> <input type="text" class="txt-pssj form-control input-radius date" name="PSSJ" value="${list.PSSJ}"> </td> <td style="text-align:center;display:none;" > <button type="button" class="btn btn-primary btn-xs btn-save" >保存</button> <input type="hidden" id="txt_kssj" class="form-control input-radius date" name="kssj" value="${list.kssj}"> <input type="hidden" id="txt_jssj" class="form-control input-radius date" name="jssj" value="${list.jssj}"> <input type="hidden" id="txt_wpbh" class="form-control input-radius wpbh" name="wpbh" value="${list.wpbh}"> <input type="hidden" class="saasdm" value="${list.saasdm}"> <!-- 统一为小写 --> </td> </tr> </c:forEach> </tbody> </table> </div> </div> </div>前台html是这样的
05-21
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Loading</title> <script src="../../js/echarts.js"></script> <script src="../../js/jquery.min.js"></script> </head> <body> <form id="form1" runat="server"> <div> <h2 style="width:100%;text-align:center">ALG各部门每周工时</h2> <div style="margin-bottom: 20px;"> <label><input type="radio" name="chartType" value="bar" checked onchange="handleRadioChange()"/> Bar</label> <label><input type="radio" name="chartType" value="line" onchange="handleRadioChange()"/> Line</label> </div> <div id="barChart" style="width: 100%; height:700px;"></div> <div id="lineChart" style="width: 100%; height:700px;"></div> </div> <div> <h2 style="width:100%;text-align:center">ALG各部门每月工时</h2> <div style="margin-bottom: 20px;"> <label><input type="radio" name="chartTypeM" value="bar" checked onchange="handleRadioChangeM()"/> Bar</label> <label><input type="radio" name="chartTypeM" value="line" onchange="handleRadioChangeM()"/> Line</label> </div> <div id="barChartM" style="width: 100%; height:800px;"></div> <div id="lineChartM" style="width: 100%; height:800px;"></div> </div> </form> <script> let barChartInstance = null; let lineChartInstance = null; let barChartInstanceM = null; let lineChartInstanceM = null; window.onload = fetchDataAndDrawCharts; function fetchDataAndDrawCharts() { fetch('ChartW.aspx/GetData', { method: 'POST', headers: { 'Content-Type': 'application/json; charset=utf-8' }, body: JSON.stringify({}) }) .then(response => response.json()) .then(data => { const parsedData = JSON.parse(data.d); initCharts(parsedData.dataW, 'barChart', 'lineChart', 'bar', 'line'); initCharts(parsedData.dataM, 'barChartM', 'lineChartM', 'bar', 'line'); }) .catch(error => { console.error('Error fetching data:', error); }); } function initCharts(data, barChartId, lineChartId, defaultTypeBar, defaultTypeLine) { const labels = data.map(item => item.Model); const seriesNames = ['AG1', 'AG2', 'AG6', 'AG7', 'AG8', 'AG9', 'AL2', 'AL5', 'AL6', 'AL7', 'AL8', 'AL9', 'L03','L08', 'L12', 'L23', 'L33', 'LMC']; const seriesBar = seriesNames.map(name => ({ name: `${name}`, type: 'bar', data: data.map(item => item[name]), stack: name, barGap: '0%' })); const seriesLine = seriesNames.map(name => ({ name: `${name} `, type: 'line', data: data.map(item => item[name]), smooth: true })); const barChartInstance = echarts.init(document.getElementById(barChartId)); barChartInstance.setOption(getChartOption(labels, seriesBar)); const lineChartInstance = echarts.init(document.getElementById(lineChartId)); lineChartInstance.setOption(getChartOption(labels, seriesLine)); if (barChartId === 'barChart') { window.barChartInstance = barChartInstance; window.lineChartInstance = lineChartInstance; showChart(defaultTypeBar); } else { window.barChartInstanceM = barChartInstance; window.lineChartInstanceM = lineChartInstance; showChartM(defaultTypeBar); } } function getChartOption(labels, seriesData) { return { tooltip: { trigger: 'axis', formatter: function (params) { let result = params[0].name + '<br/>'; params.forEach(function (item) { result += item.marker + ' ' + item.seriesName + ': ' + item.value + '<br/>'; }); return result; } }, legend: { data: seriesData.map(s => s.name) }, color: ['#5470C6', '#91CC75', '#B22222', '#FF1493', '#FFE4E1', '#9400D3', '#FF4500', '#32CD32', '#008080', '#191970', '#FF8C00', '#B8860B', '#FFFACD', '#006400', '#7FFFD4', '#483D8B', '#778899', '#00BFFF'], xAxis: { type: 'category', data: labels }, yAxis: { type: 'value', name: '工时/h', nameGap: 15, nameTextStyle: { fontSize: 15, color: '#333' }, }, series: seriesData }; } function showChart(type) { const barDiv = document.getElementById('barChart'); const lineDiv = document.getElementById('lineChart'); barDiv.style.display = type === 'bar' ? 'block' : 'none'; lineDiv.style.display = type === 'line' ? 'block' : 'none'; if (type === 'bar') window.barChartInstance.resize(); if (type === 'line') window.lineChartInstance.resize(); } function handleRadioChange() { const selectedType = document.querySelector('input[name="chartType"]:checked').value; showChart(selectedType); } function showChartM(type) { const barDivM = document.getElementById('barChartM'); const lineDivM = document.getElementById('lineChartM'); barDivM.style.display = type === 'bar' ? 'block' : 'none'; lineDivM.style.display = type === 'line' ? 'block' : 'none'; if (type === 'bar') window.barChartInstanceM.resize(); if (type === 'line') window.lineChartInstanceM.resize(); } function handleRadioChangeM() { const selectedType = document.querySelector('input[name="chartTypeM"]:checked').value; showChartM(selectedType); } </script> </body> </html>在这个页面中增加两个按钮,第一个按钮可以控制前六组数据是否显示,第二个按钮控制其他数据是否显示,给出完整代码
08-23
先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值