草庐IT

DOM_DELTA_LINE

全部标签

javascript - 设计在 DOM 中表示 UI 对象的 JavaScript 类的最佳实践是什么?

我非常熟悉JavaScript和OOP,但对设计用于UI(HTML)编程的JS类非常不熟悉。我四处搜索了一下,但没有发现任何普遍的模式。假设我想动态创建类似面板的对象(类似于MicrosoftWindows面板)。每个对象都需要一个容器、一个可以包含文本标签的标题区域和一个具有单击事件处理程序的关闭按钮。除了DOM表示(HTML)之外,该对象还将具有JavaScript对象表示(变量和方法)。这是我尝试过的一种方法:////Windowclass//varWindow=function(params){this.testMethod=function(){console.log('te

javascript - 在 DOM 中添加/删除多个元素的最快方法

编辑:它不是“最快的DOM插入”的副本,因为它也包含事件监听器变量。无论如何,我会编辑问题。如果有人已经发现,我会知道一些事情。我想知道在javascript中添加元素的最快方法是什么,并且兼容ie6+、chrome10+、firefox2+。最快的技术:添加单个元素添加100个元素添加1个元素或1000个元素的任意时间曲线与上面相同,但用于删除元素添加/更改/删除内联样式属性添加事件监听器,例如mousedown/mouseup/mouseover添加/删除某些标签是否比其他标签更快?例如:添加/删除会更快或?(在添加模式下:我认为更快,因为它只有1个字母而不是3个字母,也许是因为d

javascript - 具有 ID 属性的动态 DOM 对象的 IE9 内存泄漏

我注意到为动态创建的DOM对象分配ID属性值会导致IE9泄漏内存。有没有其他人经历过这种情况,更重要的是,知道任何解决方法?它在其他浏览器中不会泄漏,即使是IE6也能通过!泄露代码演示:它只是连续地从表中添加和删除行,并为每一行分配一个ID以供稍后查找。没有“row.id=eid;”就不会发生泄漏functionaddRow(tbl,index){varrow=tbl.insertRow(index);vareid="loongrowid"+count;row.id=eid;for(vari=0;i';for(vari=1;iTESTINGselecteddatetimeplacede

javascript - 从 html dom 创建可打印的 PDF

我有一个网页,其中有相当数量的内容是动态构建的(jqueryajax等),并且需要呈现它的可打印版本。我遇到了有关html/打印的所有常见问题,我可能(给定时间)解决这些问题,但这让我开始思考-是否有一种方法可以获取DOM并使用javascript从中生成PDF。这可能是一个有点愚蠢的问题-听起来有点棘手,我也不太确定即使我可以使用javascript构建一个PDF文件,我将如何将它呈现给用户。人们怎么看? 最佳答案 vardoc=newjsPDF();doc.text(20,20,'Helloworld!');doc.text(2

javascript - 将生成的内容添加到未绑定(bind)到 DOM 的 jQuery 对象失败

我正在尝试使用.append将HTML片段动态附加到现有元素。不知何故,脚本创建的HTML字符串没有附加到元素。附加到的元素在附加代码段时并未挂接到DOM中。所有这些都封装在一个JavaScript函数中。这是代码:append_content=function(){varelem=$('sometext');varsomecontent=get_content();//returnsastring:'xx'elem.append('bleh1');elem.append(somecontent);elem.append('bleh2');console.log(elem);retur

javascript - 测试 DOM 中元素的最佳方法是什么

有几种方法可以做到这一点(据我所知)。测试css显示if($('#foo').css('display')=='none')测试可见性if($('#foo').is(':visible'))在可见性中我可以检查元素是否存在。Elementsareconsideredvisibleiftheyconsumespaceinthedocument.Visibleelementshaveawidthorheightthatisgreaterthanzero.Elementswithvisibility:hiddenoropacity:0areconsideredvisible,sincethe

javascript - 测试一个对象是否是 DOM 事件

从像这样的函数中functioneventHandler(e){//...}是否有一种可靠且有效的方法来确定e是否为DOM事件? 最佳答案 我认为没有可靠的方法可以确定给定对象是否不是DOM事件。typeofe将始终为真正的Event对象返回'object',这没有帮助。您可能检查对象的任何属性都可以存在于真正的事件对象或任何非事件对象中。您可能认为原型(prototype)链可用于确定这一点,但它与#2存在相同的问题(可以轻松复制)。contructor属性看起来很有前途,但可以这样做:functionDummyEvent(){t

javascript - 等待 DOM 在 AngularJS 指令上准备就绪

我正在为我的Angular动力网站构建一个“导游”。我四处寻找选择和Intro.js似乎是最合适的。它已经准备好Angular指令和所有内容:AngularIntro.js.一切都按预期工作,直到我不得不向first(并且仅是第一个)添加一个步骤,一个由ng-repeat绑定(bind)注入(inject)的DOM对象。我给了所有ng-repeat项目一个唯一的ID(通过$index),但Intro.js就是不承认它。我猜Intro正在尝试通过指定的ID查找DIV,但由于ng-repeat尚未完成,因此没有该名称的DIV。我做了一个plunker,你可以看到它正在处理静态内容,但无法识

javascript - 如何仅使用 CSS3 将动态创建的元素平滑地添加到 DOM 中?

我的需求很简单,但我找不到合适的解决方案。我创建元素并将它们作为元素列表添加到DOM,每个新元素都在旧元素之前添加。我希望“顺利”添加新元素。每个元素的高度是动态的,因此必须符合CSS规则。我想我必须使用CSSanimations和keyframes,据我所知我不能使用transitions因为有时itisnotrenderedbythebrowser.我不想使用Javascript,所以我更愿意避免使用setTimeout()或jQuery的解决方案。我确信这可以使用现代CSS正确完成,但我仍然需要找到正确的方法。我有一个解决方案的开始(见下文),但是仍然有max-height:10

javascript - 为新创建的 DOM 对象获取准确的尺寸

我正在动态创建DOM元素(更具体地说,使用jQuery创建一个DIV,其中包含一些带有css“width:auto”的文本,并在页面OnLoad事件中使用“font-face”字体)但发现在创建div并将其添加到DOM树后立即,div的宽度不是预期的大小(具体来说,宽度是错误的)。我需要知道元素的宽度/高度,因为我将对其进行一些动态布局。作为解决方法,我在创建元素后使用以下代码:SetTimeout(complete_layout,100)通过使用这个额外的超时延迟完成我的布局,一切都完美无缺,所有元素大小都完全符合预期(在UbuntuLinux上的最新Chrome中)但是,这个笨拙的