Tag: dom

Javascript / jQuery – 如何获取clicked元素类的名称?

我用Google搜索并用Google搜索,我得出的结论是,我自己很难得到答案。 我试图使用jquery或JavaScript来获取clicked元素的属性。 我可以使用“this.hash”作为例子 – 它返回我认为的哈希值。 现在我想获得clicked元素类的名称。 它甚至可能吗? 怎么样? 我在哪里可以找到这种信息? jQuery文档? – 所有我能找到的方法和插件,没有属性..如果它在那里 – 请提供链接。 JavaScript文档? – 还有一个全面的吗? 再请一个链接。 DOM文档? – W3C或其中的一个(链接赞赏)。 什么是this.hash ? – DOM JavaScript还是jQuery?

影响Iframe的$(window).blur事件

我想检测用户何时离开我的页面(例如打开一个新标签),这样我就可以停止倒计时了。 我用它做了: $(window).blur(function() { //stop countdown }); 但是我的页面中有一个Iframe,当用户点击它时,倒计时也会停止,但我不希望当有人点击Iframe时执行上述事件。 任何的想法? 更新,我正在尝试更多,基于iframe上的这个答案点击事件? : iframeDoc = $(‘iframe’).contents().get(0); $(iframeDoc).click(function(){ //maybe remove blur event? }); 更新:Tim B解决方案有效: $(window).blur(function () { // check focus if ($(‘iframe’).is(‘:focus’)) { // dont stop countdown } else { // stop countdown } }); 现在我必须在每次调用模糊事件时从Iframe中移除焦点,否则如果用户在关注Iframe后更改制表符,倒计时将不会停止。 我尝试使用上述条件: if ($(‘iframe’).is(‘:focus’)) { // dont stop countdown $(“iframe”).blur() $(window).focus(); } […]

jQuery附加到AJAX加载的SVG问题

我通过AJAX从外部文件成功加载了一些svg: $(“#svg”).load(svgUrl + ” svg”, function() { // do stuff }); 我的HTML看起来像这样: … 我可以看到图形很好。 现在我想在加载的svg中添加一些额外的svg元素。 我将脚本更改为: $(“#svg”).load(svgUrl + ” svg”, function() { $(“svg”).append(“”); // do stuff }); 由于某些原因,添加的元素在firebug中显示为隐藏,无论我放入哪个xml,我都无法在我的网页上看到它。 更新: 感谢echo-flow我能够附加到我的SVG。 现在,如果我尝试从另一个xml文件加载我的指南针svg,它不会出现在我的DOM中。 目前我的代码如下: $(“#svg”).load(obj.svgUrl + ” svg”, function() { var svgns = “http://www.w3.org/2000/svg”; var g = document.createElementNS(svgns,”g”); g.setAttributeNS(null,’id’,’compass’); $(“svg”).append(g); $(“#compass”).load(“files/svg/compass.xml”); }); 如果我在firebug中查看控制台,我看到指南针标记的AJAX请求的结果是成功的但是是空的。

使用backbone.js清理视图?

我正在开发一个backbone.js-application,并且已经达到了我有许多代表我的应用程序的每个部分的路由器和视图的程度。 在下面简化的路由器示例中,我有两个位置; account和users 。 每个位置的两个视图都将其内容呈现为一个名为#appcontainer的共同元素。 我的常识说我应该确保在启动另一个视图之前remove每个视图以防止绑定,DOM和诸如此类的冲突。 但由于我无法确定是否已创建视图,因此我无法从路由器或视图中显式调用previousView.remove() 。 将$(this.el).empty()到每个视图的构造函数以清除DOM中的任何最终先前绑定和元素是否足够? 这是路由器示例? var myRouter = Backbone.Router.extend({ routes: { “account”: “account”, “users”: “users” }, account: function() { view = new AccountView({}); view.render(); }, users: function() { view = new UserView({}); view.render(); } });

我可以使用jQuery轻松地向上或向下移动li元素吗?

我有这样的菜单: Home About Archives Links 有没有一种简单的方法可以使用jquery重新排序元素? 我想象的是这样的: $(‘#menuAbout’).moveDown().moveDown() 但是,任何其他实现这一点的方式都值得赞赏

通过绝对坐标定位DOM元素

有没有一种简单的方法来定位“覆盖”(即在其边界内)具有X / Y坐标对的像素的所有DOM元素?

所有其他JS执行后运行jQuery

在过去,我已经使用$(window).onload在其他脚本加载后运行一段代码。 在这种情况下,我无法更改JS文件的加载顺序,而我所关注的代码需要操作由另一个在页面下方加载的JS文件动态插入的DOM节点。 两个脚本都位于文档底部附近。 有没有人对这种情况有任何建议?

Javascript jQuery将一大段代码插入DOM的最佳方法

我有一大段代码需要在某些时候插入到DOM中。 该代码还包含一些变量: // just a piece of the code with variable “value” 现在我在做: var codeToInsert = “” codeToInsert.insertAfter(‘#someID’); 从性能的角度来看,有更好的方法吗?

使用jQuery从包装集合中收集所有文本节点,用空格分隔

我正在寻找一种方法来收集jQuery包装集中的所有文本,但我需要在它们之间没有文本节点的兄弟节点之间创建空格。 例如,考虑这个HTML: List item #1.List item #2.List item #3. 如果我只是使用jQuery的text()方法来收集 的文本内容,就像这样: var $div = $(‘div’), text = $div.text().trim(); alert(text); 产生以下文字: 列表项#1。列表项#2。列表项#3。 因为每个 元素之间没有空格。 我真正想要的是这个(注意每个句子之间的单一空格): 列出项目#1。 列出项目#3。 列出项目#3。 这告诉我,我需要遍历包装集中的DOM节点,将每个文本附加到字符串,然后是空格。 我尝试了以下代码: var $div = $(‘div’), text = ”; $div.find(‘*’).each(function() { text += $(this).text().trim() + ‘ ‘; }); alert(text); 但这产生了以下文字: 这是列表项#1。这是列表项#2。这是列表项#3。 这是列表项#1。 这是列表项#2。 这是列表项#3。 我假设这是因为我正在遍历 每个后代并附加文本,所以我在 和每个 子项中获取文本节点,从而导致重复的文本。 […]

JavaScript scrollTo方法什么都不做?

所以我绝望地试图让一些滚动function在页面上工作。 没有运气后,我决定坚持使用window.scrollTo(0, 800); 在我的页面上,看看我是否可以进行任何滚动。 什么都没发生。 我有一个扩展的手风琴,然后我想滚动到其中的特定元素。 但是现在我很乐意看到东西滚动。 有人碰到这个吗? 谢谢!