Tag: dom

动态更改DOM元素,因为它们被滚动到视图中(性能)

我正在尝试找到一种有效的算法来为一堆 动态加载背景图像,并且存在一些效率问题。 我当前的代码如下所示: function elementInView($elem, vps, vpe) { var elempos = $elem.position(); var pagestart = elempos.top + vps; var pageend = elempos.top + vps + $elem.height(); var offset = 78 – Math.max(0,vps-pagestart) – Math.max(0,pageend-vpe); // I want to update all items that are within 200 pixels of // the current viewport return (vpe > 0 […]

来自控制器的视图上下文中的dom元素

我有一个角度视图的表格。 在表单上的按钮中,我添加了一个事件,使用$ http向服务器发送请求。 在将请求发送到服务器之前,我需要使用jQuery Validatevalidation表单。 要validation表单,我需要控制器中表单的dom引用。 我的应用程序中已经有了jQuery。 所以可以使用表格的参考 $(selecter) or angular.element($(selecter)) 但在这两种情况下,它都会搜索完整的文档以获取元素的引用。 而不是我需要在视图的上下文中搜索元素,这将提高性能。 我已经看到在角度中使用$ element。 但后来我发现不建议使用$ element,并且可能会在新版本的angular中折旧。 当我试图在控制器中获取$元素时,我收到了一个错误。 所以我猜它已经贬值了。 那么从控制器的视图上下文中获取dom元素的最佳方法是什么?

如何最好地确定元素/节点通过DOM的距离?

我试图找出一个特定元素在文档中的距离,理想情况是百分比。 具体来说,我有一个很长的XHTML文档(实际上它是ePub文件的一个组件),我在其中的某个地方有一个hello 。 如果这是文档中的第一个元素,则“百分比通过”值将为0.如果它正好在文档的中间,则为50。 它不一定是顶层,它可能嵌套在其他节点中。 我考虑使用类似递归的$(node).contents().each(function(){…}); 虽然我想知道这可能是一个缓慢的方法吗? 文档是文本,它不太可能包含图像,或者文本大小#where_am_i很大,所以只需找出文本#where_am_i距离就可以了。 先感谢您!

Javascript – 如何将jQuery对象(表)传递给Web worker?

我有一个包含不同列和行的HTML表。 该表可以由用户内联编辑。 当用户编辑表时,我会计算表行的一些总和。 计算总和的函数在主脚本中,并花了很多时间使浏览器无响应。 为了解决这个性能问题,我在JavaScript中创建了一个web worker来计算表中的总和。 问题是Web worker无法访问DOM。 我正在寻找一种方法将jQuery对象表传递给Web worker。 如果我尝试传递jQuery对象,我收到一个错误: 未捕获的DataCloneError:无法在’Worker’上执行’postMessage’:无法克隆对象。 我如何将表传递给Web Worker? 谢谢 [编辑增加一些进一步的信息] 总和需要很长时间,因为表有很多行并计算不同的总和(总计,小计等)。 sum的值存储在表中(因此worker需要访问表来执行计算)。 我的想法是将DOM对象传递给worker以计算总和。 在计算之后,worker将总和返回给主线程以便更新DOM中的值。

丢失整个页面运行javascript的DOM

这个问题继续从这个问题: 读取url并输出新的javascript src 我的最新代码是: $(document).ready(function () { var oScript = document.createElement(‘script’); oScript.type = ‘text/javascript’; oScript.src = ‘converter.js’; // most browsers oScript.onload = function () { $(‘#converter #form’).load(renderConverter()); } // IE oScript.onreadystatechange = function () { if (this.readyState == ‘complete’) { $(‘#converter #form’).load(renderConverter()); } } document.body.appendChild(oScript); }); 问题出在.load(renderConverter()); 。 这样做,它删除整个DOM并打印renderConverter(); 要求打印。 函数renderConverter(); 使用以下内容来打印html: window.document.write(html); 我改为: document.write(html)但它做同样的事情。 […]

如何使用jquery追加数据?

我需要使用dom将值添加到span中。 但现在我正在使用字符串操作。 如何将其更改为dom或附加值。 我需要使用dom获取html formate中的返回值。

从动态创建的select选项调用时,JQuery Mobile changePage()片状?

我有一个带有简单选择菜单的Jquery Mobile页面。 Heroes: Choose One… Option 1 Option 2 在事件pageinit ,我使用jQuery来从.remove()选择菜单中的所有内容,然后我动态添加许多选项。 当然,我不会忘记刷新选择菜单。 function populateHeroNames(){ //populate hero select item $(‘#heroSelectMenu’).empty(); $(‘#heroSelectMenu’).append(‘Please Choose…’); for(var i=0;i<heroNameLength;i++){ if(heroName[i]){ var currentHeroName = heroName[i]; }else{continue;} $('#heroSelectMenu').append('’+currentHeroName+”); } //refresh hero select item var heroSelectMenu = $(“#heroSelectMenu”); heroSelectMenu.selectmenu(“refresh”); console.log(‘heroes added!’); } 我的问题是我无法成功导航到以编程方式创建的选项的不同页面。 我可以从硬编码选项中做到这一点。 当我点击硬编码选项时,我可以正常使用$.mobile.changePage() 。 但是从编程创建的选项中,我导航到的页面将消失,然后返回到初始页面。 在测试中,当我点击后退按钮时,我实际上是去了我的目的地。 所以很明显JqueryM已经导航到了目的地,但后来出于某种原因又回来了。 我怀疑原因是Jquery Mobile的奇怪DOM加载。 有什么我需要刷新……或者可能防止刷新? 只需导航到页面……并留在那里!

从外部服务器读取使用脚本src标记调用的文件的响应

所以基本上我们试图从外部服务器读取文本或html文件,我们没有控制权。 我们使用脚本src标记来获取文件但我们无法读取它 就像在这个截图中你可以看到我们正在获取一个随机的txt文件,我们得到一个响应,但通过JavaScript我们无法读取它。 截图图片链接 所以现在我们的动机是阅读example.txt文件并将内容存储到javascript变量中。 我们已经厌倦但由于某些或其他原因而无法工作的事情 使用XHR和jQuery加载function $(document).ready(function () { $(“#container”).load(“http://www.thirdparty.com/example.txt”); }); 但正如我所说的第三方服务器,我们无法控制它,这是由于Cross-Origin XMLHttpRequest,我们没有从服务器得到任何响应。 顺便说一句,有没有从xhr请求消除原始标题? 使用代理服务器因ip问题而无法工作,需要从客户端发送cookie。 获取脚本标记的innerhtml和innertext但它没有返回响应,而是在标记之间提供不需要的代码。 PS我们什么东西客户端javascript基础解决方案而不是serveride由于一些特定的要求。 在此先感谢您的帮助

淘汰嵌套绑定会干扰IE7 / IE8中的jquery点击

它看起来好像在IE7 / IE8中使用Knockout时有一个错误,但它可能是一个已知问题或(甚至更可能)我正在接近错误的东西,需要纠正。 我很感激你们精彩的帮助。 当我使用jQuery的$ .click()将单击处理程序绑定到元素时,如下所示,它通常在IE7 / IE8 / IE9中正常工作。 我遇到问题的地方是元素(在这种情况下是一个按钮,但它也适用于我的测试中的其他元素类型)是在由Knockout绑定的DOM结构内部。 这只发生在IE7 / IE8中,遗憾的是,我在底部共享的jsFiddle链接可能价值有限。 在IE9中(不出所料),行为按预期工作。 这似乎也没有影响没有jQuery绑定的事件(在纯javascript中使用element.attachEvent)。 function jqClickBad() { alert(“nested click() handler bound by jquery”); } // this fires fine in IE9, but not in IE7/IE8: $(“#alertButtonJQBad”).click(jqClickBad); var viewModel = { ContainerObject: { ContainedProperty: “test” } }; ko.applyBindings(viewModel); http://jsfiddle.net/csiefken/WckWb/3/

在IE7文档和浏览器模式下运行的IE10中,Jquery无法隐藏div

我编写了一个小的jQuery脚本来查询url以查看它是否包含某些文本(在这种情况下是PL / SQL生成的参数和值)。 如果是这样,脚本会在页面内容中隐藏div并调整相邻的div以填充现在缺少的div留下的空间。 我目前的问题是,由于某些原因,尽管在所有其他浏览器中工作,脚本仍然无法在IE7中运行。 $(document).ready(function () { if(window.location.href.indexOf(“p_ccp_path=APPLY”) != -1){ $(“.page-content-right”).hide(); $(“#right-col”).css(“width”,”60%”); $(“#icams-inserted”).css(“width”,”100%”); } }); 我正在使用jQuery 1.10.2的本地化版本,并且可以在此处找到发生此错误的页面: http://tinyurl.com/jqueryError 有任何想法吗? 额外: 我检查过Firebug,没有错误。 但是,当我检查IE开发人员工具时,它会出现以下错误: SCRIPT3: Member not found jquery.min.js, line 5 character 8860 Additional2: 从一些评论来看,似乎这可能是IE10呈现为IE7模式的问题。 我将在虚拟盒子上的IE7的Vanilla版本上测试这个,以确保是这种情况。