Tag: dom

为什么jQuery或像getElementById这样的DOM方法找不到元素?

document.getElementById , $(“#id”)或任何其他DOM方法/ jQuery选择器找不到元素的可能原因是什么? 示例问题包括: jQuery默默地无法绑定事件处理程序,并且返回null的标准DOM方法导致错误: 未捕获的TypeError:无法设置null的属性“…”

dom更改后.click()失败

我在网上搜索但我没有找到任何答案,因为这个“问题”不是关于.on()和.click()之间差异的常见问题。 使用jquery 2.1.3时,click函数是on.(“click”, handler)的缩写on.(“click”, handler)因此它应该在dom更改后触发函数(或wathever)。 但这只有在我使用.on()时才有效。 为什么? (以下示例) $(‘#button1’).click(function() { $(‘div’).html(“Hello”); }); $(‘#button2’).click(function() { alert(0); //THIS DOESN’T WORK }); $(body).on(“click”, “#button2”, function() { alert(0); //THIS WORKS! });

当firebug说它是34时,为什么jquery会为offsetHeight返回0?

所以我有一个div,其内容是在运行时生成的,它最初没有与之关联的高度。 当它根据firebug生成时,我可以通过js警告,div仍然具有0的高度。但是,用firebug查看只读属性我可以看到它的偏移高度为34.这个值是我需要。 希望它是显而易见的,但如果不是,这个数字是可变的,它并不总是38。 所以,我认为我可以通过jquery做到这一点https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/…https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/… $(“#parentDiv”).attr(‘offsetHeight’); 或者用直js https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/… document.getElementById(“parentDiv”).offsetHeight; 但是返回的所有内容都是0.它是否与偏移高度在此实例中是只读属性这一事实有关? 我怎样才能达到这个高度? 我的意思是萤火虫以某种方式搞清楚它似乎我应该能够。 编辑:以下是div现在的样子https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/…https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/… 此代码由单独库中的控件生成。 所以这是在我的.aspx页面中创建它的实际代码。 好吧,它略有编辑,但是比我之前的HTML要多得多。 我之前称为“parentDiv”的div在那里被称为“ctl00_BodyContentPlaceHolder_UserControl”。 该代码包括有问题的div,它是兄弟姐妹,父母,祖父母和孩子。 这几乎是萤火虫的直接拷贝。 更新:我应该提到这是在IE 7中完成的。它似乎在Firefox中运行一次,但它现在返回0。 这是否提供了可能的解决方法或任何内容的任何新见解? https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/…https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/…你们都必须认为我疯了。 更新:一些造型https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/…https://stackoverflow.com/questions/636474/why-would-jquery-return-0-for-an-offsetheight-when-firebug-says-its-34/… .TransparentBg { background-color: white; filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5; } .Foreground { position: absolute; top: 0px; }

内联jQuery脚本在AJAX调用中不起作用

我有一个问题: 虽然我从ajax的另一个页面调用内联脚本(也使用jQuery) – 似乎jQuery没有更多的定义(?),我不能使用任何应该应用的jQuery函数(根据内联脚本)内容。 它基本上是一个新闻列表,包含特定新闻项的链接。 我现在更喜欢使用内联脚本,因为我不会在其他地方使用此function。 $.ajax({ url: href, cache: false, success: function(html){ $(‘#fancy_ajax’).append($(html).find(‘.mainContentPadded’)); } }); 如您所见,我只是调用另一个页面的一部分并将其内容附加到页面。 当我加载整页(不是它的一部分)时 – jQuery按预期工作(这就是为什么我遇到了这个想法,它需要被“重新加入”)。 谢谢!

Jquery .load()未在加载的内容中加载javascript

我知道这已被问过很多次,但我还没有找到一个明确而有用的答案,所以我想我会以更清晰的格式再次提出这个问题? 问题是当你使用.load()函数并且你需要在加载的文件中运行的javascript它不起作用,因为我猜测DOM已经加载了。 解决这个问题的简单方法是在加载的文件中再次加载javascript但是如果你有很多文件加载了javascript到处都不是很好的做法。 有没有人知道这样做的好方法? 这是我可以得到它合理整洁? $(“a[data-toggle=’modal’]”).on(‘click’, function() { var target, url; target = $(this).attr(‘data-target’); url = $(this).attr(‘href’); return $(target).load(url, function(responseText, statusText, xhr){ if(statusText == “success”){ // Re-initiate all required javascript if the load was successful. $(“.datepicker”).datepicker({ changeMonth: true, changeYear: true, showOn: “both”, buttonImage: “./assets/img/calendar.gif”, buttonImageOnly: true, dateFormat: ‘dd-mm-yy’ }); } if(statusText == “error”){ alert(“There was […]

jQuery与ready或load事件一起生活

我正在使用jQuery Tools工具提示插件,它使用$(‘selector’).tooltip()初始化$(‘selector’).tooltip() 。 我想在任何当前或未来的.tooltipper元素上调用它。 我认为以下方法可行: $(‘.tooltipper’).live(‘ready’, function(){ $(this).tooltip() } 但它没有成功—准备好的事件没有发生。 负载相同。 我已经读过livequery可以产生我正在寻找的结果,但是肯定有一种方法可以使用jQuery .live()将它拉下来,考虑到文档说它适用于所有jQuery事件,其中我相信ready 。

jquery包装相邻元素的组

我有一个允许用户在页面上插入内容块的cms。 用户可以使用不同类型的内容块,它们可以按任何顺序插入。 高级dom结构的示例可能如下所示: Some rich text … … … Some more rich text Lorem ipsum … … 我想要做的是在包装’容器’div中包装任何相邻的’box’div。 因此,在上面的示例中,将插入两个“容器”div,因为有两组box div,导致: Some rich text … … … Some more rich text Lorem ipsum … … 我不认为有一个聪明的方法来使用css选择器,所以有人知道无论如何用jQuery做到这一点?

设置DOM创建的元素的名称在IE中失败 – 解决方法?

今天我有点辛苦了: function mk_input( name, val ) { var inp = document.createElement( ‘input’ ); inp.name = name; inp.value = val; inp.type = ‘hidden’; return inp; } 事实certificate,设置通过createElement创建的元素的name在IE中不起作用。 它不会导致错误或任何事情,它只是默默地失败,导致人们思考为什么他们的隐藏字段没有正确填充。 据我所知,没有解决方法。 你必须咬住子弹并通过字符串操作创建标签,然后用.innerHTML其粘贴。 有没有更好的办法? 也许像jQuery这样的东西? 我做了一个粗略的搜索,并没有找到任何与JQuery中的createElement完全类似的东西,但也许我错过了一些东西。

jQuery监听器不“监听”动态创建的DOM元素上的事件

我有一个像这样的听众: $(‘.delete’).click(function() { …some stuff }); 此外,在同一页面上,另一个脚本以这种方式动态地向DOM添加元素: $(‘#list’).append(‘delete’); 我的问题是监听器不“监听”这些动态创建的元素。 请问有人可以解决一些问题吗?

如何使用Jquery停止所有音频播放

我正在使用jquery mobile更新页面中的div以播放一些动画。 动画也通过使用document.createElement(‘audio’);播放声音document.createElement(‘audio’); 我的问题是,当我将页面更新为另一个动画时,旧的声音继续播放。 对不起,这是我的第一个问题,如果我似乎没有正确地说它,我道歉。 这是我的代码.. 这是要加载到#animation div中的动画的代码 body { margin: 0px; padding: 0px; } /*BABY SCENE*/ var stage = new Kinetic.Stage({ container: ‘container’, width: 578, height: 400 }); var babyLayer = new Kinetic.Layer(); var backLayer = new Kinetic.Layer(); var imageObj = new Image(); var backObj = new Image(); imageObj.onload = function() { var baby […]