【发布时间】:2018-03-17 03:36:11
【问题描述】:
我在我的 Django 项目中使用 bootstrap 3.3.7。我有<textarea> 的模态。在角落的那个文本区域内,我放了一个图标。下面是我的文本区域的图片。
当用户单击图标时,我将 textarea 大小更改为浏览器的全屏。另外,我在我的 textarea 上使用了autosize 插件,它可以调整 textarea 的高度以适应文本。
在正常情况下(当 textarea 很小时)我需要使用 autosize 插件。当我单击图标并将文本区域更改为全屏时,我不需要使用此插件。
问题:点击图标时如何切换脚本的src属性?
P.S. 当 textarea 处于全尺寸模式时,我与 autosize 插件几乎没有冲突。因为当我开始以全尺寸模式在 textarea 中写入时,autosize 插件会改变它的高度。这就是为什么我想在 textarea 处于全屏模式时取消这个插件。
autosize(document.querySelectorAll('#body')); // Autosize for textarea with "body" id
$('.textarea-icon').click(function() {
$(".textarea-icon").toggleClass("fa-expand fa-compress")
$(".textarea-wrapper").toggleClass('textarea-wrapper-fullscreen')
$("#body").toggleClass('textarea-fullscreen')
$(".modal-dialog").toggleClass('modal-dialog-fullscreen')
$(".textarea-icon").toggleClass('textarea-icon-fullscreen')
});
.dashboard-wrapper {
position: relative;
}
#dashboard-content {
float: right;
width: 100%;
margin-top: 51px;
}
.textarea-wrap {
position: relative;
display: inline-block;
width: 100%;
}
.textarea-wrap .textarea-icon {
position: absolute;
top: 3px;
right: 3px;
color: #BDBDBD;
text-decoration: none;
font-size: 17px;
outline: none;
cursor: pointer
}
.textarea-wrap .textarea-icon:hover {
color: #757575;
outline: none;
}
.textarea-wrap.textarea-wrap-fullscreen {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
}
.textarea-wrap textarea.textarea-fullscreen {
margin-bottom: 30px;
overflow-x: hidden;
overflow-wrap: break-word;
height: 100vh;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/autosize@4.0.0/dist/autosize.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="dashboard-wrapper">
<div id="dashboard-content">
<div class="modal fade">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<form method="post" action="">
<div class="form-group">
<label for="body">Discription</label>
<div class="textarea-wrapper">
<textarea name="body" class="form-control" id="body"></textarea>
<i class="fa fa-arrows textarea-icon" aria-hidden="true"></i>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script id="" src="{% static 'js/autosize.js'%}"></script>
编辑:
autosize(document.querySelectorAll('#body')); // Autosize to textarea
$('.textarea-wrapper .fa-expand').click(function() {
autosize.destroy(document.querySelectorAll('#body')); // Destroy Autosize to textarea when user click icon
});
$('.textarea-icon').click(function() {
$(".textarea-icon").toggleClass("fa-expand fa-compress") // Change Icon Picture
$(this).closest('.textarea-wrapper').toggleClass('fullscreen') // Change textarea size
});
$('.textarea-wrapper .fa-compress').click(function() { // DONT WORK
autosize(document.querySelectorAll('#body'));
})
【问题讨论】:
-
在脚本运行后删除它不会在全屏时禁用插件。
-
这与 bootstrap 或 django 没有任何关系
标签: javascript jquery html css django