动态创建唯一的按钮
Create unique buttons dynamically
我是jQuery的新手,我正在尝试动态地创建jQuery UI按钮并将它们添加到列表中。我可以创建一个列表项,但不能在它之后添加更多。我做错了什么?
$('#buttonList').append('<li><button>'+ username + '</button>')
.button()
.data('type', userType)
.click(function(e) { alert($(this).data('type')); })
.append('<button>Edit</button></li>');
<div>
<ul id="buttonList">
</ul>
</div>
这只创建了一个带有两个按钮的列表项(尽管第二个按钮似乎被第一个按钮包围了,但我可能会弄清楚这个问题)。我如何让它创建多个列表项目与自己独特的"数据"值(即我不能做一个find()
上的特定按钮类,并给它的数据值,因为所有按钮将有相同的数据)?
我建议交换一下追加内容的位置和追加内容的位置。通过这种方式,您保留了附加的对象,并且应该能够将其作为标准的jQuery选择器使用。从你的代码中,我注释掉了.button()
和.append()
行,因为我不确定你想用它们做什么。如果您需要帮助添加这些行,只需在我的回答下留言;)
哦,我差点忘了:我使用var i
来模拟username
和userType
数据的不同内容。
您的JSFiddle在这里:http://jsfiddle.net/cRjh9/1/
示例代码(html部分):<div>
<p id="addButton">add button</p>
<ul id="buttonList">
</ul>
</div>
示例代码(js部分):
var i = 0;
$('#addButton').on('click', function()
{
$('<li><button class="itemButton">'+ 'username' + i + '</button></li>').appendTo('#buttonList')
//.button()
.find('.itemButton')
.data('type', 'userType'+i)
.click(function(e) { alert($(this).data('type'));
})
//.append('<button>Edit</button></li>')
;
i++;
});
在方法参数中包装任何html时需要完整的标记。你不能把DOM当作一个文本编辑器,附加一个开始标签,附加更多的标签,然后附加结束标签。
插入到DOM中的任何内容都必须是完整且有效的html。
您也不理解从append()
返回的内容的上下文。它不是参数中的元素,而是要附加到的元素集合。您正在呼叫整个<UL>
的button()
。
我建议你在尝试将这么多方法链接在一起之前更好地理解jQuery
只是一个非常简单的方法,你可以修改- FIDDLE。
我没有添加数据属性,也没有单击功能(我不确定我是否喜欢内联的"点击"函数——我通常用jQuery来做,并试着弄清楚如何做代码高效。可能不是很理性,但我经常这样。
JS
var names = ['Washington', 'Adams', 'Jefferson', 'Lincoln', 'Roosevelt'];
for( r=0; r < names.length; r++ )
{
$('#buttonList').append('<li><button>'+ names[r] + '</button></li>');
}
$('#buttonList').append('<li><button>Edit</button></li>');
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 查找网页上唯一启用的按钮
- 使用 Jquery 生成具有唯一 href 的按钮
- 使用按钮动态添加输入字段,而不删除唯一字段上的按钮
- 如何为使用 jQuery 动态生成的按钮提供唯一 ID
- 如何通过单击唯一按钮保存下拉菜单/复选框菜单选项和占位符值
- 在javascript循环中创建唯一的Id按钮
- 如何将按钮事件与唯一控件关联
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- 如何在 append() 上添加具有唯一 id 的编辑按钮
- 如何动态地向单选按钮添加唯一 ID
- 点击一个选择,然后将值传递给“;立即购买”;链接到唯一url的按钮
- 动态创建唯一的按钮
- 如何确保为我的动态内容生成唯一的JavaScript Tweet按钮
- 使用Jquery/Javascript在每次点击按钮时创建唯一的id
- 如何生成一个唯一的id,每次我按下一个按钮在JavaScript
- 编程点击按钮,没有唯一的id或类
- 如何在html中创建唯一的静音/取消静音按钮(如youtube)
- 在选择时为单选按钮分配唯一id