退出后,用JavaScript修改文本不会保留在弹出窗口中
Text Change with JavaScript isn't retained in popover after exiting
我有一个弹出窗口,激活每个链接到一个用户包含的功能,以遵循/取消遵循。
- 悬停在链接上显示弹出窗口
- 弹出窗口显示:"Follow"
- 点击Follow发送Ajax请求
- Ajax成功响应并将文本更改为Unfollow
- 激活弹出窗口,然后将鼠标悬停在相同的链接上,它会恢复到跟随。
…
$('body').popover({ selector: '[data-popover]', trigger: 'click hover', placement: 'right', delay: {show: 50, hide: 400}});
$(document).on('click', '.follow-user .follow, .follow-user .unfollow', function(){
var el = $(this);
var actionType = el.hasClass('unfollow') ? 'unfollow' : 'follow';
var data = {
actionType: actionType,
userId: el.attr("data-uid")
};
$.ajax({
type: 'POST',
url: '{{path('ajax_follow_user')}}',
data: data,
dataType: 'json',
error: function(){
alert('Error. please try again later!');
el.removeClass('following');
},
beforeSend: function(){
el.addClass('following');
},
success: function(r){
alert("success");
if(r.error != '') {
alert(r.error);
return false;
}
alert(actionType);
if (actionType == 'follow')
{
el.text("Unfollow");
el.stop().removeClass('follow').addClass('unfollow');
}
else if (actionType == 'unfollow')
{
el.text("Follow");
el.stop().removeClass('unfollow').addClass('follow');
}
el.removeClass('following').text(r.label);
}
});
});
.
<a href="#"
data-popover="true"
data-html="true"
data-content='
<img src="{{ asset(user.avatar) }}" alt="{{ user.username }}"
width="80" height="80" style="float:left; margin: 0 10px 10px 0"/>
<strong>{{ user.username }}</strong> <br />
<span class="follow-user">
{% if user in loggedInUser.followingUsersOnly %}
<a class="unfollow" data-uid="{{ user.id }}">Unfollow</a>
{% else %}
<a class="follow" data-uid="{{ user.id }}">Follow</a>
{% endif %}
</span>
<div style="clear:both"></div> <br />'>
{{ user.username }}
</a>
我可能在这一点上是错误的,但是你可能不得不销毁弹出窗口并重新创建它与成功回调中的内容。
我发现弹出窗口只在DOM内,当它显示,并删除时,它不是。(这是阻止你改变你的文本)。
$('body').popover('destroy');
var options = {
html: true,
selector: '[data-popover]',
trigger: 'click hover',
placement: 'right',
delay: {show: 50, hide: 400},
content: '<img src="{{ asset(user.avatar) }}" alt="{{ user.username }}"
width="80" height="80" style="float:left; margin: 0 10px 10px 0"/>
<strong>{{ user.username }}</strong> <br />
<span class="follow-user">
{% if user in loggedInUser.followingUsersOnly %}
<a class="unfollow" data-uid="{{ user.id }}">Unfollow</a>
{% else %}
<a class="follow" data-uid="{{ user.id }}">Follow</a>
{% endif %}
</span>
<div style="clear:both"></div> <br />'
};
$('body').popover(options);
//This is not needed, but it shows the popover
$('body').popover("show");
我不太确定如何弹出窗口工作与angularjs/django所以插值值可能会搞砸。
相关文章:
- 保留动态创建的下拉列表's在事件窗口.history.back()上选择的值-JavaScript
- 像cookie这样的全局变量,它在回发后保留值,但应该为不同的实例保存不同的值(选项卡/窗口)
- 如何在新选项卡中打开弹出窗口,但将用户保留在呼叫者选项卡上
- 创建在 ASP 会话中保留的弹出窗口
- 如何在 dialog() 模式弹出窗口中的部分视图之间保留字段数据
- 在打开的引导弹出窗口中保留复选框
- 我怎么能强迫IE在它的左边保留一些空白'的浏览器窗口
- facebook风格的jquerytokeninput脚本在jqueryui模态窗口中保留值
- 如何在jQuery中使用文本链接,同时保留打开新选项卡/窗口的点击
- 如何在浏览器窗口的边缘保留一个框?
- 在刷新父窗口和子窗口后,保留子窗口的焦点
- Chrome扩展:保留模态窗口时,页面刷新
- activeTab.open()新窗口不保留选项卡
- 当我们从一个弹出窗口移动到另一个弹出窗口时,滚动条的位置不会保留
- 调整浏览器窗口大小时,请保留内容中的位置
- 在窗口消息后保留文本字段数据
- 在浏览网站时保留弹出窗口
- 在与父页相同的窗口中打开GridView行,同时保留我的值
- 当浏览器窗口<830px,但保留文本
- 在收缩时保留浏览器窗口的宽高比