pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Safari 錯誤:當使用 JS 刪除項目時,first-child 不更

Safari bug :first-child doesn#39;t update display:block when items are removed with JS(Safari 錯誤:當使用 JS 刪除項目時,first-child 不更新 display:block)
本文介紹了Safari 錯誤:當使用 JS 刪除項目時,first-child 不更新 display:block的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

默認情況下隱藏所有項目的列表,第一個 li 具有 blockdisplay.問題是如果第一個元素被刪除,這將不會更新,實際上是創建一個應該顯示的新的第一個子元素.在 Safari 中,不顯示應該顯示的新 li.

With a list of items where all are hidden by default, the first li has a display of block. The problem is that this won't update if the first element is removed, de facto making a new first-child which should be displayed. In Safari the new li that should show is not displayed.

HTML

<ul class="list">
  <li class="item">1</li>
  <li class="item">2</li>
  <li class="item">3</li>
</ul>
<button>click me </button>

CSS

.list .item { display: none } 
.list .item:first-child { display:block}

JS

$('button').on('click', function(e) {
  $('ul li:first').remove().appendTo($('ul'));
});

查看小提琴:http://jsfiddle.net/BFTan/1/

在所有其他瀏覽器中單擊該按鈕將循環瀏覽項目,但在 Safari 中沒有任何更新.

In all other browsers clicking the button will cycle through the items but in Safari nothing updates.

推薦答案

這似乎是 display: none 和從文檔樹中刪除的對象的問題,當您使用 :first-child,而不是 Safari 處理 :first-child 選擇器本身的問題.

This appears to be a problem with display: none and objects removed from the document tree which manifests itself when you use :first-child, rather than a problem intrinsic to Safari's handling of the :first-child selector itself.

無論如何,這絕對是一個錯誤.即使您將對象(及其內容)與其父級分離,jQuery 也不會破壞該對象,但是當從其父級分離一個元素時,無論 n 的值如何,它都不應再是其父級的第 n 個子級,因此下一個元素成為第一個孩子的應該相應地匹配 :first-child.

Either way, this is definitely a bug. jQuery doesn't destroy the object even when you detach it (and its contents) from its parent, but when detaching an element from its parent it should no longer be the nth child of its parent for whatever value of n, so the next element that becomes the first child should match :first-child accordingly.

如果您將代碼中的 :first-child 更改為 :not(:last-child),例如 this,這樣您就有兩個元素同時顯示,當您單擊按鈕時,您會在 Safari 中注意到第一個元素消失,留下第二個元素完好無損(以及仍然隱藏的第三個).

If you change :first-child in your code to :not(:last-child), like this, such that you have two elements displaying at a time, you'll notice in Safari when you click the button the first element disappears, leaving the second element intact (as well as the third which is still hidden).

我還發現,如果您在列表本身上使用 :empty 選擇器添加新的空規則:

I also found that if you add a new empty rule with the :empty selector on the list itself:

/* Or even .list:empty even though it's not actually empty */
.list:not(:empty) {}

一切都會突然在 Safari 中正常工作.更奇怪的是,這種解決方法不適用于任何其他 3 級偽類.它僅適用于 :empty:not(:empty).

Everything will suddenly work correctly in Safari. Even more bizarre is that this workaround does not work with any other level 3 pseudo-class. It only works with :empty or :not(:empty).

這篇關于Safari 錯誤:當使用 JS 刪除項目時,first-child 不更新 display:block的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

CSS selector when :target empty(:target 為空時的 CSS 選擇器)
Does the CSS direct decendant (gt;) not have any value in selectivity?(CSS 直接后代 (gt;) 在選擇性方面沒有任何價值嗎?)
Using querySelectorAll(). Is the result returned by the method ordered?(使用 querySelectorAll().方法返回的結果是否有序?)
nth-Child CSS selectors(nth-子 CSS 選擇器)
Using same ID for multiple HTML tags?(對多個 HTML 標簽使用相同的 ID?)
TestCafe - How to check if a web element exists or does not exist without failing the test?(TestCafe - 如何在不通過測試的情況下檢查 Web 元素是否存在?)
主站蜘蛛池模板: 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 海水晶,海水素,海水晶价格-潍坊滨海经济开发区强隆海水晶厂 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 早报网| 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 环球电气之家-中国专业电气电子产品行业服务网站! | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 湖南自考_湖南自学考试| 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 起好名字_取个好名字_好名网免费取好名在线打分 | 山东成考网-山东成人高考网 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 成都中天自动化控制技术有限公司| 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 |