在Jquery插件中未正确创建动态元素

时间:2017-10-18 08:19:54

标签: javascript jquery jquery-plugins

我写了一个掩码jquery,假设在现有的输入元素中添加动态元素。

var link = $('<a title="show" role="link" href="#" class="masker-value">show</a>');

wrapper: function() {
  container = $(container)
    .attr('ispartial', this.options.partial)
    .attr('readyonly', this.options.readyOnly);
  $(this.element).wrap(container);
  if (!this.options.hideToggle)
    $(this.element).after(link);
} 

如果我在页面上有一个输入,上面的代码工作正常,但如果我有多个输入,link只会添加到最后一个输入。

Demo

1 个答案:

答案 0 :(得分:1)

将以下行添加到A('Saber', 15)函数:

!A
name: Saber
age: 15

您在包装函数之外全局定义了链接,因此它始终引用同一个对象,该对象在DOM中移动。

示例:https://jsfiddle.net/nxvdm5hr/5/

进一步说明:

使用wrapper时,jQuery会创建一个输入DOM元素。

当你link = $('<a title="show" role="link" href="#" class="masker-value">show</a>'); 该元素时,它会与之前的位置分离。

您还可以将var $('<a/>')修改为HTML代码,这也可以解决您的问题。