javascript - 如何检测生成元素的点击?

标签 javascript jquery json

我正在从 JSON 数据中创建一组元素: 示例:

{
'name':'form',
'elements':[
{'name':'bt1','type':'button','value':'hello','order':'1'},
{'name':'img1','type':'image','value':'http://www.images.com/img.jpg','order':'2'}]
}

我用这个 json 做的是创建一个表单,其中包含“元素”中描述的元素,代码如下:

(我在 mumbo jumbo + jquery 代码中得到了这个草稿)

$('#container').html();//clears the container
for each element in elements do
    switch element.type
          case 'button':
          $('#container').append('<input type="submit" value="'+element.value + ... etc');
          end case
          case 'image':
          insert image bla bla bla
    end switch
end for each

我想检测元素是否被点击或其他类型的 Action ,如鼠标悬停等。如何将其绑定(bind)到元素? 另外,我如何更新元素而不破坏它们?

编辑:我暗示了一些重要的事情,我的错: 我需要将元素 javascript 对象中的数据与生成的 html 元素链接起来。触发操作时检索的数据字段。这就是所有这一切的关键。

最佳答案

您有两个选择。您可以在创建元素后绑定(bind)监听器,如下所示:

var $input = $('<input type="submit" value="'+element.value + ... etc')
                  .focus(...).blur(...).etc.;

$('#container').append($input);

或者,您可以使用事件委托(delegate)。在初始页面加载时,您可以这样做:

$("#container").on( "focus", "input", function(){...});

这将涵盖 #container 中当前或以后动态添加的所有输入元素。您可以在 on docs 中阅读有关事件委托(delegate)的更多信息.

关于javascript - 如何检测生成元素的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424444/

相关文章:

javascript - d3 词云 - 出现太多重叠

javascript - Echarts 来自百度条形图和折线图问题

javascript - 为什么 React 会更新这部分 DOM?

For 循环内的 JavaScript 顺序/同步回调函数

javascript - 传递给 javascript 函数时,JSON 序列化意外标记

javascript - 隐藏所有 div 元素但显示前两个

javascript - jquery 关注多种类型的下一个输入

javascript - 在 eBay api 中显示价格

javascript - 使用 rapidjson 在 C++ 中比较 json 值

php - 在 PHP 上使用 JSON 时重定向