如何在jquery-plugin(imagemapster)中等待用户交互?

时间:2012-04-06 05:01:10

标签: jquery jquery-plugins imagemapster

我使用jquery-plugin mapster设置了我的imagemap

代码告诉我,点击了哪些国家/地区(埃及为'1',利比亚为'2')。

    $(document).ready(function() {

    function geklickt (e){
    //alert(typeof e.key);     return string
    $('.showme').append(e.key+ ' ');
    }


    $('img').mapster({
    mapKey: 'ALT',
    stroke: true,
    strokeWidth: 2,
    strokeColor: 'ff0000' ,
    onConfigured: function(){
    //    howto set up loop for asking user here???
    } ,
    onClick: geklickt
    });
    });

我的问题: 我想在一个循环中询问用户这样的不同国家: “点击埃及”

    if (e.key == '1')
    {
    // message "Ok"
    // add one point
    }
    else
    {
    // message "NOT Ok"
    }

“点击突尼斯”......

我不知道如何对此循环进行编码,因此系统会要求用户输入第一个国家/地区,然后程序会等到用户点击某个国家/地区为止 然后用户被问到第二个国家....

感谢

库尔特

1 个答案:

答案 0 :(得分:0)

您不需要循环。 JavaScript适用于事件驱动的操作,而不是“等待用户输入。”

使用预定义的密钥保留国家/地区名称的数组(或对象),并使用这样的结构来提示用户:

<div>Click on <span id="countryname"></span></div>

然后使用javascript动态更改基于当前密钥显示的名称。

示例JS(不完整,但有必要的信息):

var countryArray, currentKey;
countryArray = [];
/*
 * populate countryArray using keys like this
 * countryArray[key] = "Name";
 */
function setCountry(key){
    $("#countryname").text(countryArray[key]);
}

currentKey = 0; //can be set randomly or however you'd like
setCountry(currentKey);

function geklickt (e){
    if(currentKey == e.key){
        //success
        //add one point
        currentKey = newKey; //however you want to set it
        setCountry(currentKey);
    } else {
        //failure
        //message: "NOT OK"
    }
}