Tag: dom

jQuery / Javascript – 如何在继续执行函数之前等待被操作的DOM更新

我要做的是在执行CPU密集型脚本之前更新一个简单的div来说“Processing …”(运行需要3-12秒,没有AJAX)然后更新div来说“完成! “ 完成后。 我所看到的是div永远不会更新“Processing …”。 如果我在该命令后立即设置断点,那么div文本会更新,所以我知道语法是正确的。 IE9,FF6,Chrome13中的行为相同。 即使绕过jQuery并使用基本的原始Javascript,我也看到同样的问题。 你认为这会有一个简单的答案。 但是,由于jQuery .html()和.text()没有回调挂钩,因此这不是一个选项。 它也没有动画,所以没有.queue可以操纵。 你可以使用我在下面编写的示例代码来测试这个,它显示了具有5秒高CPUfunction的jQuery和Javascript实现。 代码很容易理解。 当您单击按钮或链接时,您永远不会看到“正在处理…” function addSecs(d, s) {return new Date(d.valueOf()+s*1000);} function doRun() { document.getElementById(‘msg’).innerHTML = ‘Processing JS…’; start = new Date(); end = addSecs(start,5); do {start = new Date();} while (end-start > 0); document.getElementById(‘msg’).innerHTML = ‘Finished JS’; } $(function() { $(‘button’).click(function(){ $(‘div’).text(‘Processing JQ…’); […]

jQuery.ready()等效的元素事件监听器?

我正在使用jQuery JavaScript库。 我喜欢在设置DOM时触发的$(document)上准备好的事件监听器。 (非常类似于.onload但没有外部源) 我会发现它非常有用,如果有一个事件监听器与此行为非常相似,但在元素完全加载时触发。 (fe:图片,文字内容极长的Div,如此) 我很欣赏jQuery或JavaScript方法。

`input`元素的“change”和“input”事件之间的区别

有人能告诉我change和input事件之间的区别是什么? 我正在使用jQuery添加它们: $(‘input[type=”text”]’).on(‘change’, function() { alert($(this).val()); }) 它也适用于input而不是change 。 也许在相关焦点的事件排序方面存在一些差异?

使用jQuery检查是否加载了图像(没有错误)

我正在使用JavaScript与jQuery库来操作无序列表中包含的图像缩略图。 当图像被加载时,它会做一件事,当发生错误时它会做其他事情。 我正在使用jQuery load()和error()方法作为事件。 在这些事件之后,我检查.complete的图像DOM元素,以确保在jQuery注册事件之前图像尚未加载。 它正常工作,除非在jQuery注册事件之前发生错误。 我能想到的唯一解决方案是使用img onerror属性在全局某个地方(或在它自己的节点上)存储一个“标志”,表示它失败了,因此jQuery可以在检查.complete时检查“存储/节点”。 谁有更好的解决方案? 编辑:粗体主要点并在下面添加额外的细节:我正在检查图像是否完整(也称为加载)我在图像上添加加载和错误事件后。 这样, 如果在事件被注册之前加载了图像,我仍然会知道。 如果在事件之后未加载图像,则事件将在事件发生时进行处理。 这个问题是,我可以很容易地检查是否已经加载了图像,但我无法判断是否发生了错误。

将递归函数转换为异步CPS实现(javascript)

这是我的function。 function duplicate_step_through_highlighted (element_jq, target_jq, char_cb) { console.log( element_jq); var contents = element_jq.contents(); for (var i = 0 ; i < contents.length; ++i) { // if text node, step if (contents[i].nodeType === 3) { // insert empty text node var new_tn = document.createTextNode(''); target_jq.append(new_tn); // iterate it var text = contents[i].nodeValue; for (var j = […]

在JavaScript中将String转换为XML文档

在Ajax的jQuery示例页面上看到这个例子: var xmlDocument = [create xml document]; $.ajax({ url: “page.php”, processData: false, data: xmlDocument, success: someFunction }); 我如何使用如下字符串: var t = ‘something’; 并将其转换为XML DOM对象? 跨浏览器? 更新 :请参阅karim79答案的评论。

如何检测何时已加载iframe

似乎$(‘#someIframe’).load(function(){…})如果在iframe完成加载后附加,则不会触发。 那是对的吗? 我真正喜欢的是拥有一个在加载iframe时或之后总是被调用一次的函数。 为了更清楚,这里有两种情况: Iframe尚未加载 : 加载后运行回调函数。 iframe已经加载 :立即运行回调。 我怎样才能做到这一点?