• 关于

    html多个单选

    的搜索结果

回答

这是个好问题。不知道题主是否熟悉自由测试和弱网测试这两个提法——这其实就是你提出的测试需求。简而言之:自由测试就是乱点;弱网测试就是人为制造掉包和延迟(可能制造成随机或确定性的)。这两个测试都是非常重要的。程序能否顶住这两项测试,保证一切情况下的响应都是合理的(而不是跑飞),这是开发者对健壮性把握如何的一个重要指标。问题一分为二地看。先忽略“点击速率的控制”,仅看“如何保证加载结果正确”这一点。从体验的角度来看,用户点击多个选项卡时,内容应该仅以用户点击的最后一个选项卡为准。毕竟用户点击了新的选项卡,就包含着“之前没加载出来的旧选项卡,全都丢弃不要了”的潜台词。考虑这个序列:选项卡1点击 - 选项卡2点击 - 选项卡1响应到达 - 选项卡2响应永远丢包。此时用户体验来看,弹出选项卡1必然是怪异的(我明明点击的是选项卡2!)。唯一的正确答案是:显示为选项卡2永远加载中(或者提示超时出错,允许用户重新加载),而永远丢弃选项卡1的响应。从这个意义上,AJAX请求的发出你是不应当阻止的。你的真正需求是:发出新的AJAX请求的时候,如何将旧的请求全部停下来。这里必须说明的是:AJAX对象,保证HTTP的响应与请求一一对应。具体而言:某个具体的XMLHttpRequest实例发出了HTTP请求。那么此HTTP请求的响应,就会回到发请求的那个XMLHttpRequest实例上。这一点自动、必然、绝对、100%准确无误,并且由浏览器(或JS引擎)直接保证,无需任何编程干预。以上是针对原生AJAX而言的。jQuery也一样,只是对象变成了jQuery封装过的jqXHR而已。1次AJAX请求必然有1个实例,多个请求那就有多个实例来管理,这与任何其他条件无关,根本不用考虑“多个AJAX请求相同页面,响应会不会对应乱了”这种杞人忧天的问题。你说回调?那只不过是挂载在各个AJAX对象实例上的一个普通成员变量(JavaScript里函数和变量同为一等公民)。请求对象对应正确了,回调自然也不会乱。这种1次请求对应1个对象的关系,就给了我们在AJAX请求发出后,仍然能对其进行控制的可能。我们确实通常把 $.ajax() 当语句使用($.ajax(settings);),但事实上 $.ajax() 是有返回值的。$.ajax() 返回此次请求对应的 jqXHR 对象,我们可以通过此对象,来影响和操作这次请求本身。那么每次点击选项卡都发出请求,但只响应用户发出的最后一个请求的代码就非常好写了:$(function() { $('#单选你的选项卡的容器').data('request_buffer', null); }); $('.多选你的每一个选项卡').click(function() { // 旧的HTTP请求直接放弃加载 var previous_jqxhr = $('#单选你的选项卡的容器').data('request_buffer'); if (previous_jqxhr) { previous_jqxhr.abort(); } var current_jqxhr = $.ajax({ type: your_type, url: your_url, data: your_data, timeout: your_timeout_seconds * 1000, context: this, }) .beforeSend(function() { // 显示点loading小动画什么的 }) .done(function() { // 点亮你点击的选项卡,灭掉其他的 $('.多选你的每一个选项卡').removeClass('.选项卡点亮的效果'); $(this).addClass('.选项卡点亮的效果'); // 填充正文区域 $('#单选你显示正文的区域').html(你得到的响应正文); }) .fail(function() { // 你认为合适的超时处理 }); // 新的请求顶掉旧的请求 $('#单选你的选项卡的容器').data('request_buffer', current_jqxhr); });回调函数是控制HTTP请求的jqXHR对象调用的,所以如果不加污染,那么回调函数内的this指的是jqXHR本身。那么回调函数在调用到的时候,根本没有办法反查到你点击了哪个选项卡。所以一定注意代码里那个context。jqXHR对象的context,确定了jqXHR在调用回调函数的时候,把回调函数内看到的this污染成谁。只有在产生jqXHR的时候(即调用$.ajax()时)明确告知“此请求和哪些对象有联系”,在回调的时候才不会迷失方向,导致一些设置视觉效果的需求做不出来。实现要基于事物的本源。如果一个AJAX请求要丢弃,那就应当把请求对象本身挖出来,通知他自己放弃。这样不但彻底把待丢弃的无效回调本身消灭,更可以命令浏览器直接断开HTTP连接,节省宝贵的流量和并发数。这一点也是很重要的。而明知道请求用不着了还要接收下来,再以“提前return”之类的修补手段“手工丢弃”,这个绕圈子的方案明显是不够优的。实际上以上的措施,已经能够达到“保证加载结果正确”的目的了。 用户点得快,发出的请求多又怎么样? 反正同一时刻同时只有1条请求在网上跑,只有1个回调有调到的可能,一切的干扰要素都排除光了。在此基础上,如果引入“限制用户点击的速率”,那么就是纯粹为了减轻服务器压力考虑了。这个的办法就更加简单:用户点击一个选项卡(启动HTTP请求发送,可以挂在beforeSend事件上)时把所有的选项卡置灰。(不能点是必须明确提示用户的)然后等待以下两个触发条件触发任意一个,就可以把所有的选项卡恢复点击:成功分支:用户点的这个选项卡加载成功了(立刻允许用户切换到其他选项卡)失败情况:用户点击之后过去了 X 秒(加载不出来了,允许用户发出新的请求)这个的代码就略了。
小旋风柴进 2019-12-02 02:24:30 0 浏览量 回答数 0

问题

js多选跳转问题

$(".skip-btn").click(function(event){ $val = $(".second-tag li a.active").text(); $url = window.location.href; ...
杨冬芳 2019-12-01 19:52:39 893 浏览量 回答数 1

回答

概述 这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素。 jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。 默认情况下, 如果没有指定context参数,$()将在当前的 HTML document中查找 DOM 元素;如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。在jQuery 1.3.2以后,其返回的元素顺序等同于在context中出现的先后顺序。 参考文档中 选择器 部分获取更多用于 expression 参数的 CSS 语法的信息。 参数 selector,[context]String,Element,/jQueryV1.0selector:用来查找的字符串 context:作为待查找的 DOM 元素集、文档或 jQuery 对象。 elementElementV1.0一个用于封装成jQuery对象的DOM元素 objectobjectV1.0一个用于封装成jQuery对象 elementArrayElementV1.0一个用于封装成jQuery对象的DOM元素数组。 jQuery objectobjectV1.0一个用于克隆的jQuery对象。 jQuery()V1.4返回一个空的jQuery对象。 示例 描述:找到所有 p 元素,并且这些元素都必须是 div 元素的子元素。 jQuery 代码:$("div > p");描述:设置页面背景色。 jQuery 代码:$(document.body).css( "background", "black" );描述:隐藏一个表单中所有元素。 jQuery 代码:$(myForm.elements).hide()描述:在文档的第一个表单中,查找所有的单选按钮(即: type 值为 radio 的 input 元素)。 jQuery 代码:$("input:radio", document.forms[0]);描述:在一个由 AJAX 返回的 XML 文档中,查找所有的 div 元素。 jQuery 代码:$("div", xml.responseXML);
a123456678 2019-12-02 03:09:12 0 浏览量 回答数 0

回答

用FormData对象提交。注意IE只有版本10以上支持。 FormData对象怎么来呢,有两种方法。 方法一:表单就是FormDataHTML代码: <form id="fileform"> <input type="file" name="file"> </form> JS代码: var formElement = document.getElementById("fileform"); //jQuery可以像这样: //var formElememt = $("#fileform")[0]; var formData = new FormData(formElement); 方法二:自己构造HTML代码: <input type="file" id="file"> JS代码: var fileInput = document. getElementById("file"); //用jQuery可以这样: //var fileInput=$("#file")[0]; var file = fileInput.files[0]; //获得File对象(也就是你那个filemeta),这里文件是单选的,如果是多选的需要遍历fileInput.files属性来获取每一个文件 var formData = new FormData(); formData.append("file", file); //FormData对象的append方法第一个参数相当于input的name属性,第二个参数就是value,可以是File对象 用jQuery发送请求 全选复制放进笔记$.ajax({ type: "POST", //必须POST url: "http://example.com", //接收请求的URL processData: false, //必须设置 contentType: false, //必须设置 data: formData //直接把formData对象作为data属性的值发送 //其他参数参数自行设置 })
小旋风柴进 2019-12-02 02:27:05 0 浏览量 回答数 0

问题

设计功能和界面测试用例

文本框的测试   如何对文本框进行测试   a,输入正常的字母或数字。   b,输入已存在的文件的名称;   c,输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符...
技术小菜鸟 2019-12-01 21:06:08 2874 浏览量 回答数 1

回答

回 74楼(果普) 的帖子 您好,“747203082”是阿里旺旺群呢 ------------------------- 回 64楼(qiyewangfeng) 的帖子 亲,活动结束后我们会在本帖公布答案,请大家关注哦 ------------------------- 回 46楼(zhaoxiaoya) 的帖子 747203082是阿里旺旺群,亲加入这个群 ------------------------- 回 47楼(啊里新人) 的帖子 ------------------------- 回 30楼(newwell) 的帖子 同学们,我们会在活动结束后统一把答案公布,请大家关注哦 ------------------------- 回 114楼(2050网络) 的帖子 亲,活动结束后我们会统一公布答案 ------------------------- 回 226楼(kispeed) 的帖子 亲,活动结束后我们统一把结果公布给大家 ------------------------- 回 楼主(dengcf) 的帖子 万网主机达人征集第一期圆满结束,中奖名单公布啦!恭喜以下同学 [attachment=66296] 状元奖 :90分   200云币 (2个名额) 榜眼奖 :85分   100云币 (4个名额) 探花奖 :80分   80云币   (5个名额) 达人奖 :70分   50云币  ( 25个名额) 参与奖 :20云币,只要回帖+考试者均可获得 云币发放时间:12月16日 非常遗憾的是,以下同学积极参与考试取得高分但未回帖与大奖擦身而过(系统只能根据回帖发放云币)@天籁之音 @yikay @id菜鸟组 @爱映疯wp @top1314 @love1123 @sunfang1cn @lwb6565 @阿土笨笨 @汐兰 @31492377 @buknitx@126.com 主机达人四级考试正确答案公布: 一、单选题 1、以下通过域名访问到云虚机的步骤中,错误的是? D D、在未绑定域名时,可以通过云虚机IP调试网站 2、为什么我的网站通过“域名/首页名” 如www.abc.com/index.asp可以访问,但直接输入域名如www.abc.com则无法访问?B B、因为您需要在控制面板增加您的网站首页文件名才能访问 3、关于备案说法错误的是?C C、云虚机一个网站只能备案一个域名 4、哪个建站程序是万网X3(Linux版)主机不支持的?C C、Discuz! NT 二、多选题 1、为什么万网云虚机数据可靠性可以达到99.999%?ABCD A、云虚机有快照,保存多份数据备份 B、云虚机每份实时数据存3份,存在不同服务器上   C、BGP机房的服务器通过分配多个IP来实现南北网络分流,选择最优路径   D、 BGP协议有冗余备份、当某一条线路出现故障时可自动切换正常线路。 2、为什么智能多线BGP机房将比单线、双线机房更有优势?ABD A、BGP机房可以解决南北网络互连互通问题 B、BGP机房的路由器可以根据访客来源选择最优路径,访问速度最快 D、BGP协议有冗余备份、当某一条线路出现故障时可自动切换正常线路。 3、关于云虚机产品说法错误的是?CD C、万网云虚机可以通过远程/SSH登录到服务器管理 D、万网云虚机服务器的安全软件、服务器升级需要客户操作 4、哪些是万网主机支持的建站技术?ABCF或ABCFH A、HTML B、ASP.NET  C、C# F、PHP  H、C++ 第一期征集达人活动圆满结束,非常感谢大家的踊跃参与,大家的对主机的想法建议我们会反馈给产品经理,在后续产品优化中评估支持。 另外还未加入 万网主机沟通交流旺旺群“747203082”请大家主动加入, 大家对主机的想法和意见都可以通过旺旺群实时交流。 ------------------------- 回 234楼(杜瑞堂) 的帖子 可以享受万网产品活动的最大折扣,具体以活动为准呢,有啥活动不会忘记达人兄弟们呢
dengcf 2019-12-02 01:05:33 0 浏览量 回答数 0

回答

楼主,你好,针对你的问题,想要实现其实也十分简单,我用你的问题截图,举一个简单的例子,里面有详细的注释,你先看,如果不懂的可以问我。下面这个是个简单的实现,还可以扩展功能,使他们适用于更多的地方。在下面的例子中,我在对应的ul和span上面都加了一个id属性,为的是能够更快的找到对应的元素。当然,根据文档的结构,也可以不设置元素id,但是需要通过结果查找出来,相对来讲,设置了属性的元素更容易理解一些。 <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <style type="text/css"> .selected { background-color: #ccc; } </style> </head> <body> <span id="checkedPJLi"></span> <ul id="pj_items"> <li val="djhj">定价黄金</li> <li val="jjhj">计价黄金</li> </ul> </body> <script type="text/javascript"> $(function(){ //首先,我们在元素加载完成以后,初始化pj_items下每个li对应的单击事件,也就是选中事件 $("#pj_items li").bind("click", function(){ selectedItem(this); }); }); //选中某个li响应的方法 function selectedItem(obj){ //获取当前发生单击事件的元素对象 var $elemThis = $(obj); //现在我们向元素里添加名为selected的class样式 $elemThis.addClass("selected"); //由于是单选,所以我们需要将之前之前选中的li重置回去,即取消当前选中的样式selected $elemThis.siblings().removeClass("selected"); //方法一、最后我们需要将当前选中的值放到我们需要的span上面去,也就是调用tackSelectedItem方法 //tackSelectedItem(); //方法二、当然,tackSelectedItem方法提供的是一种从全局查找选中元素的方法,还可以省略为下面的步骤,因为我们操作的当前元素就是我们想要的选项,我们可以直接取值并赋给对应的span元素 //也就是,先取得当前选中元素对应的文本内容 var txt_this = $elemThis.text(); $("#checkedPJLi").text(txt_this); } //从全局pj_items的ul查找选中li元素并将其文本内容赋值给checkedPJLi的span function tackSelectedItem(){ //首先获取id="items"的ul下选中的li元素对象 var $selectedLi = $("#pj_items").find(".selected"); //然后通过这个元素对象,可以获取想要从它身上获取的它所拥有的一切,如:文本值 var txt_item = $selectedLi.text(); //又如属性值(当然,楼主并未提到,就作为扩展吧) //var val_item = $selectedLi.attr("val"); //接下来楼主说的将值绑定到对应的span上了 $("#checkedPJLi").text(txt_item); } </script> </html> 上面给span复制的方法一和方法二,二选其一即可,如果选了方法二,就可以不用tackSelectedItem方法,即可以删除。这里写出来,只是为了你可以更好的扩展提供一下思路。比如今后,你可以通过传递ul的id属性和需要绑定的li的id属性,通过一个方法就可以使用于页面上需要相同功能的位置。比如说扩展后的方法为: /*ul_id:需要绑定选中并将值赋予span的ul的id属性值;span_id:与之对应的span元素的id属性值;selected_class:这组功能你所对应想要绑定的选中状态的样式名称(主要针对你可能需要不同的样式的情况,如果不需要刻意不传或默认一个就可以了)*/ function tackSelectedItem(ul_id, span_id, selected_class){ //首先获取id="items"的ul下选中的li元素对象 var $selectedLi = $("#"+ul_id).find("."+selected_class); //然后通过这个元素对象,可以获取想要从它身上获取的它所拥有的一切,如:文本值 var txt_item = $selectedLi.text(); //接下来楼主说的将值绑定到对应的span上了 $("#"+span_id).text(txt_item); }
小旋风柴进 2019-12-02 02:17:00 0 浏览量 回答数 0

回答

Vue 相对不于 React 的一个优点是它易于理解和学习,且在国内占大多数。咱们可以在 Vue 的帮助下创建任何 Web 应用程序。 因此,时时了解一些新出现又好用的Vue 开源项目也是挺重要,一方面可以帮助咱们更加高效的开发,另一方面,咱们也可以模范学习其精华部分。 接下来看看新出的有哪些好用的开源项目。 uiGradients 网址: http://uigradients.com/ GitHub: https://github.com/ghosh/uiGradients GitHub Stars: 4.6k 彩色阵列和出色的UX使是这个项目的一个亮点,渐变仍然是网页设计中日益增长的趋势。 咱们可以选择所需的颜色,并可以获得所有可能的渐变,并获取对应的 CSS 代码, 赶紧收藏起来吧。 CSSFX CSS 过度效果的集合 网址: https://cssfx.dev GitHub: https://github.com/jolaleye/cssfx GitHub Stars: 3.5k CSSFX 里面有很多 CSS 过滤效果,咱们可以根据需求选择特定的动画,点击对应的效果即可看到生成的 CSS 代码,动手搞起来吧。 Sing App Vue Dashboard 一个管理模板 网址: https://flatlogic.com/templat... GitHub: https://github.com/flatlogic/sing-app-vue-dashboard GitHub Stars: 254 事例:https://flatlogic.com/templates/sing-app-vue-dashboard/demo 文档:https://demo.flatlogic.com/sing-app/documentation/ 这是基于最新 Vue 和 Bootstrap 免费和开源的管理模板,其实跟咱们国内的 vue-admin-template 差不多。咱们不一定要使用它,但可以研究学习源码,相信可以学到很多实用的技巧,加油少年。 Vue Storefront 网址: https://www.vuestorefront.io GitHub: https://github.com/DivanteLtd/vue-storefront GitHub Stars: 5.8k 这是一个PWA,可以连接到任何后端(或几乎任何后端)。这个项目的主要优点是使用了无头架构。这是一种全面的解决方案,为咱们提供了许多可能性(巨大的支持稳步增长的社区,服务器端渲染,将改善网页SEO,移动优先的方法和离线模式。 Faviator 图标生成的库 网址: https://www.faviator.xyz GitHub: https://www.faviator.xyz/playground GitHub Stars: 94 如果需要创建一个图标增加体验度。 可以使用任何 Google 字体以及任何颜色。只需通过首选的配置,然后选择PNG,SVG或JPG格式即可。 iView Vue UI 组件库 网址: https://iviewui.com/ GitHub: https://github.com/iview/iview GitHub Stars: 22.8k 不断迭代更新使这组UI组件成为具有任何技能水平的开发人员的不错选择。 要使用iView,需要对单一文件组件有充分的了解,该项目具有友好的API和大量文档。 Postwoman API请求构建器 网址: https://postwoman.io/ GitHub: https://github.com/liyasthomas/postwoman GitHub Stars: 10.5k 这个与 Postman 类似。 它是免费的,具有许多参与者,并且具有多平台和多设备支持。 这个工具真的非常快,并且有大量的更新。 该工具的创建者声称在不久的将来会有更多功能。 Vue Virtual Scroller 快速滚动 网址: https://akryum.github.io/vue-virtual-scroller/#/ GitHub: https://github.com/Akryum/vue-virtual-scroller GitHub Stars: 3.4k Vue Virtual Scroller具有四个主要组件。 RecycleScroller可以渲染列表中的可见项。 如果咱们不知道数据具体的数量,最好使用DynamicScroller。 DynamicScrollerItem将所有内容包装在DynamicScroller中(以处理大小更改)。 IdState简化了本地状态管理(在RecycleScroller内部)。 Mint UI 移动端的 UI 库 网址: http://mint-ui.github.io/#!/en GitHub: https://github.com/ElemeFE/mint-ui GitHub Stars: 15.2k 使用现成的CSS和JS组件更快地构建移动应用程序。使用此工具,咱们不必承担文件大小过大的风险,因为可以按需加载。动画由CSS3处理,由此来提高性能。 V Calendar 用于构建日历的无依赖插件 网址: https://vcalendar.io GitHub:https://github.com/nathanreyes/v-calendar GitHub Stars: 1.6k 您可以选择不同的视觉指示器来装饰日历。 V Calendar还为咱们提供了三种日期选择模式: 单选 多选 日期范围 Vue Design System 一组UI工具 网址: https://vueds.com/ GitHub: https://github.com/viljamis/vue-design-system GitHub Stars: 1.7k 这是一种组织良好的工具,对于任何web开发团队来说,它的命名都很容易理解。其中一个很大的优点是使用了更漂亮的代码格式化器,它可以在提交到Git之前自动排列代码。 Proppy UI组件的功能道具组合 网址: https://proppyjs.com GitHub: https://github.com/fahad19/proppy GitHub Stars: 856 ProppyJS 是一个很小的库,用于组合道具,它附带了各种集成包,让您可以自由地使用它流行的渲染库。 我们的想法是首先将Component的行为表达为props,然后使用Proppy的相同API将其连接到您的Component(可以是React,Vue.js或Preact)。 API还允许您访问其他应用程序范围的依赖项(如使用Redux的商店),以方便组件树中的任何位置。 Light Blue Vue Admin vue 后台展示模板 网址: https://flatlogic.com/templates/light-blue-vue-lite GitHub: https://github.com/flatlogic/light-blue-vue-admin GitHub Stars: 79 事例: https://demo.flatlogic.com/light-blue-vue-admin/#/app/dashboard 文档: https://demo.flatlogic.com/light-blue/documentation/ 模板是用Vue CLI和Bootstrap 4构建的。从演示中可以看到,这个模板有一组非常基本的页面:排版、地图、图表、聊天界面等。如果咱们需要一个扩展的模板,可以看看Light Blue Vue Full,它有60多个组件,无 jquery,有两个颜色主题。 Vue API Query 为 REST API 构建请求 GitHub: https://github.com/robsontenorio/vue-api-query GitHub Stars: 1.1k 关于这个项目没什么好说的。它所做的与描述行中所写的完全一样:它帮助咱们构建REST API的请求。 Vue Grid Layout Vue 的网格布局 Website: https://jbaysolutions.github.io/vue-grid-layout/examples/01-basic.html GitHub: https://github.com/jbaysolutions/vue-grid-layout GitHub Stars: 3.1k 所有网格相关问题的简单解决方案。它有静态的、可调整大小的和可拖动的小部件。还是响应和布局可以恢复和序列化。如果还需要再添加一个小部件,则不必重新构建所有网格。 Vue Content Loader 创建一个占位符加载 Website: http://danilowoz.com/create-vue-content-loader GitHub: https://github.com/egoist/vue-content-loader GitHub Stars: 2k 当咱们开发网站或者 APP 时,遇到内容过多加载速度慢时,会导致用户打开页面有大量空白页,vue-content-loader正是解决这个问题的一个组件,使加载内容之前生成一个dom模板,提高用户体验。 Echarts with Vue2.0 数据可视化 Website: https://simonzhangiter.github.io/DataVisualization/#/dashboard GitHub: https://github.com/SimonZhangITer/DataVisualization GitHub Stars: 1.3k 在图片中,咱们可以看到非常漂亮的图表。这个项目使任何数据都更具可读性,更容易理解和解释。它允许咱们在任何数据集中轻松地检测趋势和模式。 Vue.js Modal 高度可定制的模态框 Website: http://vue-js-modal.yev.io/ GitHub: https://github.com/euvl/vue-js-modal GitHub Stars: 2.9k 可以在该网站上查看所有不同类型的模态。 有15个按钮,按任意一个按钮,看到一个模态示例。 Vuesax 框架组件 Website: https://lusaxweb.github.io/vuesax/ GitHub: https://github.com/lusaxweb/vuesax GitHub Stars: 3.7k 这个项目在社区中很受欢迎。 它使咱们可以为每个组件设计不同的风格。 Vuesax的创建者强调,每个Web开发人员在进行Web设计时都应有选择的自由。 Vue2 Animate vue2.0 —使用animate.css 构建项目和创建组件 Website: https://the-allstars.com/vue2-animate/ GitHub: https://github.com/asika32764/vue2-animate GitHub Stars: 1.1k 这个库是跨浏览器的,咱们可以选择从5种类型的动画: rotate,slide,fade,bounce和zoom。在网站上有一个演示。动画的默认持续时间是1秒,但是咱们可以自定义该参数。 Vuetensils Vue.js的工具集 Website: https://vuetensils.stegosource.com/ GitHub: https://github.com/stegosource/vuetensils GitHub Stars: 111 这个UI库有一个标准的功能,但是最酷的是它没有额外的样式。你可以让设计尽可能的个性化,应用所有的需求。只需编写需要的样式,将其添加到项目中,并包含需要的尽可能多的组件。
茶什i 2020-01-09 10:39:02 0 浏览量 回答数 0

回答

引用来自“milin”的评论直接用jquery好了,写的那么麻烦 以下代码取自: JS, JQUERY实现全选,反选。 其中,我将 <script src="js/jquery-1.8.3.min.js"></script> 改成: <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> 测试一下,似乎正是你所要的效果。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="checkbox" value="全选" id="ckAll"/>水果</br> <div class="box"> <input type="checkbox" value="苹果" id="apple"/>苹果 <input type="checkbox" value="香蕉" id="bann"/>香蕉 <input type="checkbox" value="橘子" id="origin"/>橘子 </div> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript">        //给所有 .box input 元素添加 checked = ckAll 当前的状态;        //prop('checked',value) ,第一个值获取属性,第二个值:设置属性值。prop只有一个参数时,表示获取元素属性。         $('#ckAll').click(function(){            $('.box input').prop('checked',$(this).prop('checked')); }); $('.box input').click(function(){ //each 便利每一个元素,让其执行该函数 $('.box input').each(function(){ if(!$(this).prop('checked')){ $('#ckAll').prop('checked',false); //有一个不满足就 跳出该循环,避免执行下面 return false; }else{ $('#ckAll').prop('checked',true); } }) })</script> </body> </html>  ######嗯嗯,是这样的,感谢分享!######一个不选中的场景,是否应当写成:if(!select1Input[i].checked){...}? 你少写了属性:checked。######if(!select1Input[i].checked){...}还是不管用###### 提问: 识别号为"selectAll"的html元素是什么类型?(type="?") 鉴于代表它的变量all 有个属性onclick (all.onclick), 我猜是 type="button"。可是它同时又有一个属性 checked, 我想它可能是 type="checkbox"。因此,我觉得,这个应当设立两个元素:一个 type="button", 一个 type="checkbox"。 请告诉我 元素 "selectAll" 是什么类型(type="?")。我不太明白这句话:"一个不选中,全选框也取消的效果"。全选框是否指的是 id="selectAll" 这个元素? "也取消" 是否是指 这个全选框消失?或它的checked 由 true 变为 false?  建议: 1.    定义 方法 selectReverse 的代码是否可以改成: var selectReverse = reverse.onclick = function(){     for (var i=0; i<select1Input.length; i++) {     select1Input[i].checked= !select1Input[i].checked;     } } 2.   将变量名称 reverse 换成 toggle。Toggle(切换),即使用自定义效果来显示或隐藏匹配的元素。这里,指的是 在  选中/未选中 (checked:true/false) 之间切换。鉴于 reverse 已经被 js 用于颠倒数组中元素的顺序的方法名: reverse(), 这里就不宜再用做其它的意思了。又发现,jQuery 中 toggle() 方法 是用来切换元素的可见状态的。如果是要"全选框也取消",即 全选框也消失, 那么 toggle 就最合适不过了。######回复 @良辰2250 : 我刚发一贴回答。可能正合你意。######回复 @tcxu : 点全选复选框可以全部选中,如果取消其中一个选项,全选复选框就不会选中。我是想让全选复选框与它的选项们之间有一个这样联动的效果呢######回复 @良辰2250 : 谢谢答复。你说:"一个不选中,全选框也取消的效果"。这是什么效果? 看来,全选框指的是 id="selectAll" 这个元素。 "也取消" 指是什么情况?是指 这个全选框消失, 还是指,一旦全选框的 checked 为 false, 其它所有的checkbox 的 checked 都会 是 false?######select1Input[i].checked= !select1Input[i].checked; 嗯,这样会更好######都是复选框:全选、反选、各选项: <label><input id="selectAll" type="checkbox" />全选/取消全选</label> <label><input id="selectReverse" type="checkbox" />反选</label><label><input type="checkbox" name="ability" />js</labe>######var selectAll=function (flag){ for(var i=0;i<select1Input.length;i++){ select1Input[i].checked=flag; } all.checked=flag; } 难道是这个意思?######和上面的效果也一样######直接用jquery好了,写的那么麻烦######借助于 网上的代码,如: <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> 有一个弊端:万一那个代码网页找不到(当然,不希望如此),你自己的代码也就无法运行了。我明白了你的用意之后,就尝试修改你的代码。结果发现,不用 JQuery 也会奏效。请测试。 var all = document.getElementById('selectAll'); var reverse = document.getElementById('selectReverse'); var select1Input = document.getElementsByName('ability'); var selectAll = function(flag){ for (var i=0; i<select1Input.length; i++){ select1Input[i].checked = flag; } } for (var i=0;i<select1Input.length;i++) select1Input[i].onclick = function(){ all.checked = false; } var selectReverse = reverse.onclick = function(){ for (var i=0; i<select1Input.length; i++) { select1Input[i].checked= !select1Input[i].checked; } } all.onclick = function(){ if (all.checked) { selectAll(true); } if (!all.checked){ selectAll(false); } }  ######谢谢啦我参考了http://www.cnblogs.com/lk4525/p/6513924.html 里面一个计数器,补充了一点######/* 全选、不选、反选 */ var all = document.getElementById('selectAll'); var reverse = document.getElementById('selectReverse'); var select1Input = document.getElementsByName('ability'); var selectAll = function selectAll(flag) { for(var i=0; i<select1Input.length; i++) { select1Input[i].checked = flag; } } for(var i=0; i<select1Input.length; i++) { select1Input[i].onclick = function() { //引入计数器 var sum = 0; for(var j=0; j<select1Input.length; j++) { if(select1Input[j].checked) { sum += 1; if(sum == select1Input.length) { all.checked = true; } else { all.checked = false; } } } } } var selectReverse = reverse.onclick = function(){ for (var i=0; i<select1Input.length; i++) { select1Input[i].checked= !select1Input[i].checked; } } all.onclick = function() { if(all.checked) { selectAll(true); } if(!all.checked) { selectAll(false); } }  ######$(document).on("click", ".checkAll", function (ev) { $(this).parents("table").find(".option .checkSingle").prop("checked", $(this).prop("checked")); }); $(document).on("click", ".checkSingle", function (ev) { var checked = $(this).parents("table").find(".option .checkSingle:not(:checked)").length == 0; $(this).parents("table").find(".checkAll").prop("checked", checked); });######回复 @Tis : 嗯嗯,方法有很多######判断全选框是否应该选中,只要判断 单选框的选中数量 和 总数量是否相等。######为什么写到循环里,直接all.checked=flag不可以?并且你click的时候已经改变all了,为什么还要在selectall里面改变下。还有,全选click里面的if意义在哪?直接selectAll(this.checked)不就好了######测试:点全选,再取消一个选项,再选中,会发现全选框居然不选中了。selectAll(flag)在all.onclick的里面是可以全选,但会存在一个如上的问题。所以引入一个计时器(选中的要和全部数一样),这时所有复选框都选中了,全选框才会是选中的状态
kun坤 2020-06-09 13:59:32 0 浏览量 回答数 0

回答

Re调用dd.biz.contact.choose失败 我把json打印出来 jsapi Should NOT Call,selectorString=choose:to,errorCode:7 ------------------------- Re调用dd.biz.contact.choose失败 没有放在dd.ready里面 在ready之后 我尝试过放在ready中 没有反应 var corpId=""; $(function(){     var agentid =  $("#agentid").val();     corpId =  $("#corpId").val();     var timeStamp =  $("#timeStamp").val();     var nonceStr =  $("#agentid").val();     var signature =  $("#agentid").val();          dd.config({                 agentId : agentid,                 corpId : corpId,                 timeStamp : timeStamp,                 nonceStr : nonceStr,                 signature : signature,                 jsApiList : [ 'runtime.info', 'biz.contact.choose',                         'device.notification.confirm', 'device.notification.alert',                         'device.notification.prompt', 'biz.ding.post',                         'biz.util.openLink' ]             });     dd.error(function(err) {         alert('dd error: ' + JSON.stringify(err));     });     dd.ready(function() {         dd.biz.navigation.setTitle({             title: '考核管理',             onSuccess: function(data) {             },             onFail: function(err) {                 log.e(JSON.stringify(err));             }         }); //         alert('dd.ready rocks!');         dd.runtime.info({             onSuccess : function(info) {                 logger.e('runtime info: ' + JSON.stringify(info));             },             onFail : function(err) {                 logger.e('fail: ' + JSON.stringify(err));             }         });         dd.ui.pullToRefresh.enable({             onSuccess: function() {             },             onFail: function() {             }         })         dd.biz.navigation.setMenu({             backgroundColor : "#ADD8E6",             items : [                 {                     id:"此处可以设置帮助",//字符串                 // "iconId":"file",//字符串,图标命名                   text:"帮助"                 }                 ,                 {                     "id":"2",                 "iconId":"photo",                   "text":"我们"                 }                 ,                 {                     "id":"3",                 "iconId":"file",                   "text":"你们"                 }                 ,                 {                     "id":"4",                 "iconId":"time",                   "text":"他们"                 }             ],             onSuccess: function(data) {                 alert(JSON.stringify(data));             },             onFail: function(err) {                 alert(JSON.stringify(err));             }         });         dd.runtime.permission.requestAuthCode({             corpId : $("#corpId").val(),             onSuccess : function(info) { //                alert('authcode: ' + info.code);                 $.ajax({                     url : 'userinfo.html?code=' + info.code + '&corpid='+ $("#corpId").val(),                     type : 'POST',                     success : function(data, status, xhr) {                         var info = JSON.parse(data);                         document.getElementById("userName").innerHTML = info.name;                         document.getElementById("userId").innerHTML = info.userid;                         window.location.href= 'toLogin.html?name='+info.name+'&mobile='+info.mobile+'&userId='+info.userid;                         // 图片 //                        if(info.avatar.length != 0){ //                            var img = document.getElementById("userImg"); //                            img.src = info.avatar; //                                      img.height = '100'; //                                      img.width = '100'; //                          }                     },                     error : function(xhr, errorType, error) {                         alert(errorType + ', ' + error);                     }                 });             },             onFail : function(err) {                 alert('fail: ' + JSON.stringify(err));             }         });     }); }); function pp(){     alert(corpId);     dd.biz.contact.choose({           startWithDepartmentId: 0, //-1表示打开的通讯录从自己所在部门开始展示, 0表示从企业最上层开始,(其他数字表示从该部门开始:暂时不支持)           multiple: true, //是否多选: true多选 false单选; 默认true           users: [], //默认选中的用户列表,userid;成功回调中应包含该信息           disabledUsers:[],// 不能选中的用户列表,员工userid           corpId: corpId, //企业id           max: 10, //人数限制,当multiple为true才生效,可选范围1-1500           limitTips:"最多只能选择10人", //超过人数限制的提示语可以用这个字段自定义           isNeedSearch:true, // 是否需要搜索功能           title : "选择负责人", // 如果你需要修改选人页面的title,可以在这里赋值           local:"true", // 是否显示本地联系人,默认false           onSuccess: function(data) {               alert("成功");               alert(data)           //onSuccess将在选人结束,点击确定按钮的时候被回调           /* data结构             [{               "name": "张三", //姓名               "avatar": "http://g.alicdn.com/avatar/zhangsan.png" //头像图片url,可能为空               "emplId": '0573', //userid              },              ...             ]           */           },           onFail : function(err) {               alert(err);           }         }); } 还有 请问版主 我这个下载的javademo  定义的agentid="" 这样验证都是可以通过的 但是如果我加上企业的应用的agentid就无法通过验证 调用jsapi需要agentid吗 ------------------------- Re调用dd.biz.contact.choose失败 ready中dd.runtime.permission.requestAuthCode执完成 跳转的我给注销了 页面已经显示出来用户名和id了 执行pp方法时候 alert(corpId)也没错 然后就变成: jsapi Should NOT Call,selectorString=choose:to,errorCode:7 ------------------------- Re调用dd.biz.contact.choose失败 引用的js https://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js ios10  钉钉版本3.2.0 ------------------------- Re调用dd.biz.contact.choose失败 安卓端 钉钉开发者版本显示 requestJsAPis() not invoked errorCode:7 这个确实实在config之后做的 因为页面demo 的userid和name都已经打印出来了 ------------------------- Re调用dd.biz.contact.choose失败 没有出来..放在里面就没反应了.说没有定义pp()这个方法.这个是不是和签名有关系呢? ------------------------- Re调用dd.biz.contact.choose失败 这个是不是和agentid有关系 我是下载官方的demo  应该是验证成功的了 不然会不会获取用户的信息 但是官方demo agenti定义的是空字符串.我这个是企业应用开发 我看官方文档 是需要agentid的 但是不写的话 也是获取到用户了 跟这个有关系吗 麻烦版主了~~~ ------------------------- Re调用dd.biz.contact.choose失败 应该和他这个问题是一样的 但是最后没有给出怎么解决的 https://bbs.aliyun.com/read/285910.html?spm=5176.bbsr285910.0.0.C8IIZ1&fpage=4&page=2 ------------------------- Re调用dd.biz.contact.choose失败
ariesm 2019-12-01 23:40:21 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT