Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改事件不适用于选择列表_Javascript_Jquery_Html - Fatal编程技术网

Javascript 更改事件不适用于选择列表

Javascript 更改事件不适用于选择列表,javascript,jquery,html,Javascript,Jquery,Html,我想在1天内检测国家/地区选择并将所选选项存储在cookie上,当您在1天之前重新加载网站时,网站首选项应通过以下方式加载: $('#country-options')[0].value = getCookie("selectedLanguage"); 我如何做到这一点?请告知 下面是我的.js代码 function setCookie(c_name, value, exdays) { var exdate = new Date(); exdate.setDate(exdate

我想在1天内检测国家/地区选择并将所选选项存储在cookie上,当您在1天之前重新加载网站时,网站首选项应通过以下方式加载:

$('#country-options')[0].value = getCookie("selectedLanguage");
我如何做到这一点?请告知

下面是我的.js代码

function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value)
            + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

function languageSelected() {
    //= $('#country-options')[0].value;
    var languageSelected = $('#country-options').val();
    alert(" tt " + languageSelected);
    var selected = $('#country-options').options[$('#country-options').selectedIndex];
    selected.setAttribute("selected", "selected");
    var oldselected = $('#country-options').options[0];
    oldselected.removeAttribute("selected");
    if (languageSelected !== "fr") {
        setCookie("selectedLanguage", languageSelected, 1);
        alert("Welcome again " + languageSelected);
    } else {
        alert("W " + languageSelected);
    }

    //$('#countryform').submit();
}

$(document).ready(function() {

    // --- language dropdown --- //

    // turn select into dl
    createDropDown();

    var $dropTrigger = $(".dropdown dt a");
    var $languageList = $(".dropdown dd ul");

    // open and close list when button is clicked
    $dropTrigger.toggle(function() {
        $languageList.slideDown(200);
        $dropTrigger.addClass("active");
    }, function() {
        $languageList.slideUp(200);
        $(this).removeAttr("class");
    });

    // close list when anywhere else on the screen is clicked
    $(document).bind('click', function(e) {
        var $clicked = $(e.target);
        if (!$clicked.parents().hasClass("dropdown"))
            $languageList.slideUp(200);
        $dropTrigger.removeAttr("class");
    });

    // when a language is clicked, make the selection and then hide the list
    $(".dropdown dd ul li a").click(function() {
        var clickedValue = $(this).parent().attr("class");
        var clickedTitle = $(this).find("em").html();
        $("#target dt").removeClass().addClass(clickedValue);
        $("#target dt em").html(clickedTitle);
        $languageList.hide();
        $dropTrigger.removeAttr("class");
    });






    $('#country-options')[0].value = getCookie("selectedLanguage");


    $('#country-options').bind('change', function() { // bind change event to select
        var url = $(this).val(); // get selected value
        alert("WFFFFFF " + url);
        if (url != '') { // require a URL
            window.location = url; // redirect
        }
        return false;
    });
});

// actual function to transform select to definition list
function createDropDown() {
    var $form = $("div#country-select form");
    $form.hide();
    var source = $("#country-options");
    source.removeAttr("autocomplete");
    var selected = source.find("option:selected");
    var options = $("option", source);
    $("#country-select").append('<dl id="target" class="dropdown"></dl>')
    $("#target").append(
            '<dt class="' + selected.val()
                    + '"><a href="#"><span class="flag"></span><em>'
                    + selected.text() + '</em></a></dt>')
    $("#target").append('<dd><ul></ul></dd>')
    options.each(function() {
        $("#target dd ul").append(
                '<li class="' + $(this).val() + '"><a href="'
                        + $(this).attr("title")
                        + '"><span class="flag"></span><em>'
                        + $(this).text() + '</em></a></li>');
    });
}


<form name="countryform" action="index.jsp">
    <select id="country-options" name="country-options">
        <option  selected="selected" value="">Pick a Website</option>
        <option title="index.jsp" value="fr">France</option>
        <option title="index.jsp" value="uk">United Kingdom</option>
        <option title="index.jsp" value="es">Espana</option>
        <option title="index.jsp" value="de">Germany</option>
    </select>
</form>
函数setCookie(c_名称、值、exdays){
var exdate=新日期();
exdate.setDate(exdate.getDate()+exdays);
var c_值=转义(值)
+((exdays==null)?“”:““expires=“+exdate.ToutString());
document.cookie=c_name+“=”+c_值;
}
函数getCookie(c_名称){
变量i,x,y,ARRcookies=document.cookie.split(“;”);
对于(i=0;i<0.length;i++){
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf(“=”);
y=ARRcookies[i].substr(ARRcookies[i].indexOf(“=”)+1);
x=x.replace(/^\s+|\s+$/g,”);
如果(x==c_名称){
返回unescape(y);
}
}
}
函数语言selected(){
//=$(“#国家/地区选项”)[0]。值;
var languageSelected=$(“#国家/地区选项”).val();
警报(“tt”+所选语言);
所选变量=$(“#国家选项”)。选项[$(“#国家选项”)。所选索引];
selected.setAttribute(“selected”、“selected”);
var oldselected=$(“#国家/地区选项”)。选项[0];
oldselected.removeAttribute(“选定”);
如果(所选语言!=“fr”){
setCookie(“selectedLanguage”,languageSelected,1);
警报(“再次欢迎”+选择语言);
}否则{
警报(“W”+所选语言);
}
//$(“#countryform”).submit();
}
$(文档).ready(函数(){
//---语言下拉菜单--//
//将select转换为dl
createDropDown();
变量$dropTrigger=$(“.dropdown dt a”);
var$languageList=$(“.dropdown dd ul”);
//单击按钮时打开和关闭列表
$dropTrigger.toggle(函数(){
$languageList.slideDown(200);
$dropTrigger.addClass(“活动”);
},函数(){
$languageList.slideUp(200);
$(此).removeAttr(“类”);
});
//单击屏幕上的任何其他位置时关闭列表
$(文档).bind('click',函数(e){
var$clicked=$(e.target);
如果(!$clicked.parents().hasClass(“下拉菜单”))
$languageList.slideUp(200);
$dropTrigger.removeAttr(“类”);
});
//单击语言时,进行选择,然后隐藏列表
$(“.dropdown dd ul li a”)。单击(函数(){
var clickedValue=$(this.parent().attr(“类”);
var clickedTitle=$(this.find(“em”).html();
$(“#目标dt”).removeClass().addClass(clickedValue);
$(“#target dt em”).html(单击标题);
$languageList.hide();
$dropTrigger.removeAttr(“类”);
});
$(“#国家/地区选项”)[0]。value=getCookie(“selectedLanguage”);
$(“#国家/地区选项”).bind('change',function(){//bind change event to select
var url=$(this).val();//获取所选值
警报(“WFFFFFF”+url);
如果(url!=''){//需要一个url
window.location=url;//重定向
}
返回false;
});
});
//将选择转换为定义列表的实际函数
函数createDropDown(){
var$form=$(“div#country select form”);
$form.hide();
var来源=$(“#国家选项”);
source.removeAttr(“自动完成”);
var selected=source.find(“选项:selected”);
var选项=$(“选项”,来源);
$(“#国家/地区选择”)。附加(“”)
$(“#目标”)。追加(
'')
$(“#目标”)。追加(“
    ”) 选项。每个(函数(){ $(“#目标dd ul”)。追加( “
  • ); }); } 选择一个网站 法国 大不列颠联合王国 西班牙人 德国
    但在代码之前,我将另一个以(function($,undefined){,revslider.jquery.themepunch.revolution.js开头的js加载到我的webpage.jsp文件中

    <script type="text/javascript"
    src="js/revslider.jquery.themepunch.revolution.js"></script>
    <script> my code </script>
    
    
    我的代码
    
    取决于您使用的jQuery版本,但如果您使用的是最新的jQuery版本,
    .bind()
    将被折旧

    所以你可以用它

    $('#country-options').on('change', function() {
        // Code here.
    });
    

    jQuery API
    .on()
    link->

    不要使用
    .bind()
    ,使用
    .on()
    你所做的应该可以工作,所以要么你从来没有调用
    languageSelected
    ,要么语言没有正确存储,要么问题出在其他地方:)我添加到change函数中,我尝试了,但不起作用。
    bind()
    未被弃用