[英]How can I add new UI Elements to a list on click?
我需要创建以下名为“Categories”的面板,每次用户点击“+New Category”链接时,
添加了一个新的文本框矩形,用户可以在其中输入类别。 对于每个添加的类别,旁边都标有一个有序编号。
目前这是我的代码:
<div class="row">
<div class="col-lg-3">
<section class="panel">
<header class="panel-heading">
<h2 class="panel-title">Categories</h2>
<a class="new-category" href="#add-new-app-category">+ New Category</a>
</header>
</section>
</div>
</div> <!-- END <div class="row"> -->
.panel {
background: transparent;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
}
.panel {
margin-bottom: 20px;
background-color: #fff;
border: 1px solid transparent;
/* border-radius: 4px;*/
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
/* overflow-y: auto;*/
width:431px;
}
.panel-heading {
background: #fdfdfd;
/* border-radius: 5px 5px 0 0;*/
/* border-bottom: 1px solid #DADADA;*/
/* padding: 18px;*/
position: relative;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 22px;
color: #2baab1;
font-family:'Lato', sans-serif;
display:inline-block;
}
.panel-body {
background: #fdfdfd;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
/* border-radius: 5px;*/
}
.panel-body {
padding: 15px;
}
.new-category {
float:right;
margin-top:5px;
text-decoration:none;
}
.new-category:link , .new-category:visited, .new-category:hover{
text-decoration:none;
}
jsfiddle 链接: https ://jsfiddle.net/kzc024vq/2/
每次用户单击“+新类别”链接时,都应添加新的有序文本框 UI 元素,如下图所示:
此外,我还需要什么:
我需要通过单击该特定文本框的“x”来添加删除列表中类别的可能性
我可以单击并将其拖到列表的其他元素上。
您必须使用.append()
将新元素添加到 html 容器中,并使用.remove()
删除特定元素。 您可以使用 click 事件来使用添加和删除元素。
例子:
$( ".new-category" ).click(function() { $( '#container' ).append('<div>new category <a class="close-category" href="#">x</a></div>'); }); $( "#container" ).on( "click", ".close-category", function( event ) { $( this).parent().remove(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="row" id="container"> <div class="col-lg-3"> <section class="panel"> <header class="panel-heading"> <h2 class="panel-title">Categories</h2> <a class="new-category" href="#add-new-app-category">+ New Category</a> </header> </section> </div> </div> <!-- END <div class="row"> -->
当您追加新类别时,您需要使用委托事件来更新事件,因为新对象不继承该事件。
$( "#container" ).on( "click", ".close-category", function( event ) {
$( this).parent().remove();
});
function createCategory(){
var htmlStr = '<h2 class="panel-title">Categories</h2>
<a class="new-category"href="#add-new-app-category">+ New Category</a>'
$('#yourWrapperDiv').append(htmlStr);
}
和 HTML 方面:
<a id="newCategory" onclick="createCategory()">new category</a>
http://www.w3schools.com/jquery/html_append.asp
如果您想为新类别赋予自己的名称,您需要添加一个输入字段来输入名称,或者您需要生成唯一的 ID。
如果您不希望将点击处理程序写入 html 端,您也可以这样做:
$('#newCategoryLink').click(function(){
createCategory();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.