Tag: JavaScript

由dynamic生成的元素触发的事件不会被事件处理程序捕获

我有一个与id="modal"与jQuery的load()方法dynamic生成的<div> : $('#modal').load('handlers/word.edit.php'); word.edit.php包含一些input元素,它们被加载到一个模式<div> 。 使用jQuery的keyup方法,我可以捕获事件触发后的input值,但是当元素被dynamic地添加到模态div时,当用户input文本时不会再触发事件。 哪个jQuery方法支持由dynamic创build的元素触发的处理事件? 创build新的input元素的代码是: $('#add').click(function() { $('<input id="'+i+'" type="text" name="translations' + i + '" />') .appendTo('#modal'); 捕获用户值的代码是: $('input').keyup(function() { handler = $(this).val(); name = $(this).attr('name'); 第二个代码块似乎适用于原始元素,但不会由新的dynamic生成的元素触发。

在JavaScript中合并/拼合数组数组?

我有一个JavaScript数组,如: [["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]] 我将如何去做这个只是: ["$6", "$12", "$25", …]

如何使用variables作为名称将属性添加到JavaScript对象?

我用jQuery将项目拉出DOM,并想使用DOM元素的id设置对象的属性。 例 const obj = {} jQuery(itemsFromDom).each(function() { const element = jQuery(this) const name = element.attr('id') const value = element.attr('value') // Here is the problem obj.name = value }) 如果itemsFromDom包含一个id为“myId”的元素,我希望obj有一个名为“myId”的属性。 以上给我的name 。 如何使用JavaScript为variables命名一个对象的属性?

在JavaScript中获取图像数据?

我有一个常规的HTML页面(只是普通的<img /> HTML标签)。 我希望得到他们的内容,最好base64编码,而不需要重新下载图像(即它已经加载的浏览器,所以现在我想要的内容)。 我很想用Greasemonkey和Firefox来实现。

在页面加载之间存在variables

我正在尝试捕获我的表单提交button按下,如果提交表单,页面刷新,我显示一些隐藏的领域。 我想知道这个表格是否已经提交过,如果提交了,我想隐藏隐藏的字段。 我试图使用全局variables来实现这一点,但是我无法使其正常工作。 这是我试过的: var clicked = false; $(document).ready(function() { $("input[type='submit'][value='Search']").attr("onclick", "form.act.value='detailSearch'; clicked = true; return true;"); if (clicked == true) { // show hidden fields } else { // don't show hidden fields } }); 任何有关这个代码有什么问题的build议吗?

加载本地文件时出错“仅支持HTTP来源的跨源请求”

我试图用JSONLoader将3D模型加载到Three.js中,并且该3D模型与整个网站位于相同的目录中。 我得到"Cross origin requests are only supported for HTTP." 错误,但我不知道是什么原因造成的,也不知道如何解决。

我怎样才能让jQuery执行同步而不是asynchronous的Ajax请求?

我有一个提供标准扩展点的JavaScript小部件。 其中之一是beforecreatefunction。 它应该返回false以防止创build项目。 我已经使用jQuery将Ajax调用添加到此函数中: beforecreate: function (node, targetNode, type, to) { jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value), function (result) { if (result.isOk == false) alert(result.message); }); } 但是我想阻止我的小部件创build项目,所以我应该在母函数中返回false ,而不是在callback中。 有没有办法使用jQuery或任何其他API执行同步的Ajax请求?

在内存中创build一个文件供用户下载,而不是通过服务器

有什么办法可以在客户端创build一个文本文件,并提示用户下载它,而不需要与服务器进行任何交互? 我知道我不能直接写他们的机器(安全和所有),但我可以创build并提示他们保存吗?

直接与委托 – jQuery .on()

我想了解使用jQuery .on()方法 直接和委托事件处理程序之间的这种特殊区别。 具体来说,这一段的最后一句话是: 当提供selector ,事件处理程序被称为委托 。 当事件直接发生在绑定元素上时,处理程序不会被调用,但是只有匹配select器的后代(内部元素)才会调用该处理程序。 jQuery将事件从事件目标拖动到处理程序所在的元素(即,最内层到最外层的元素),并沿着匹配select器的path上的任何元素运行处理程序。 这是什么意思“运行处理程序的任何元素”? 我做了一个testing页面来实验这个概念。 但是下面的结构都会导致相同的行为: $("div#target span.green").on("click", function() { alert($(this).attr("class") + " is clicked"); }); 要么, $("div#target").on("click", "span.green", function() { alert($(this).attr("class") + " is clicked"); }); 也许有人可以参考一个不同的例子来澄清这一点? 谢谢。

jQuery:Ajax调用成功后返回数据

我有这样的事情,这是一个简单的调用脚本,给我一个值,一个string.. function testAjax() { $.ajax({ url: "getvalue.php", success: function(data) { return data; } }); } 但如果我打电话这样 var output = testAjax(svar); // output will be undefined… 那么我怎样才能返还价值? 下面的代码似乎不工作… function testAjax() { $.ajax({ url: "getvalue.php", success: function(data) { } }); return data; }