因为我可以做Bootstrap警报,按一个按钮来改变语言

时间:2015-04-02 04:45:54

标签: javascript jquery ruby-on-rails twitter-bootstrap alerts

我遇到了一个问题,当访问者更改网络语言时,我会尝试发出提醒,警报已创建但已消失,因为这样会更改链接:

?locale=es || ?locale=en || http://localhost:3000/pages/index?locale=en

默认为英文,但按下按钮,提示持续时间为0.5秒并消失。

因为我可以保留警报,直到你删除它?

注意:我使用Ruby On Rails。

我的按钮:

    <li><a href="?locale=en" class="glyphicon glyphicon-share-alt" id="AlertEN"> <%= t('menuLen')%></a></li>

代码我的提醒:

<div class="container">    
        <center>
            <div class="alert alert-success" id="successChangeEN" role="alert">
                <button type="button" class="close" data-dismiss="alert">&times;</button>
                <strong>Success!</strong> Your Language is now English.

            </div>
        </center>
</div>

我的JS:

    <script>
bootstrap_alert = function() {}
bootstrap_alert.warning = function(message) {
            $('#alert_placeholder').html('<div class="alert alert-success"><a class="close" data-dismiss="alert">×</a><span>'+message+'</span></div>')

        }

$('#AlertEN').on('click', function() {
            bootstrap_alert.warning('You change the language success!');
});
</script>

我希望回答,谢谢。

1 个答案:

答案 0 :(得分:0)

这里有一个使用Cookie http://jsfiddle.net/0Lcofr6x/show/

的示例

源代码:http://jsfiddle.net/0Lcofr6x/

由于小提琴不接受虚拟查询字符串但是相信我你导航到同一页面(重新加载),因此Url没有改变。

$( document ).ready(function() {

    $('#AlertEN').attr('href', window.location.href);    
    bootstrap_alert = function() {}
    bootstrap_alert.warning = function(message) {
        $('#alert_placeholder').html('<div class="alert alert-success"><button class="close" data-dismiss="alert">×</button><span>'+message+'</span></div>');
        $('#alert_placeholder .close').unbind( "click" );
        $('#alert_placeholder .close').on('click', function() { $('#alert_placeholder').hide();
                                                               $('.alert-success').show();
                                                                  });

            }

    $('#AlertEN').on('click', function() {       
                $.cookie("changed_locale", "You change the language success!"); 


    });

     $('.alert-success').hide();
    if ($.cookie("changed_locale") != null)
    {
        bootstrap_alert.warning('You change the language success!');
    }
    $.removeCookie("changed_locale");
});