如何根据变量指定是否可以调用事件侦听器?

时间:2014-10-26 15:10:54

标签: javascript jquery function google-maps google-maps-api-3

我有一个变量,它被赋予一个值,该值取决于db中表中的值。如何使用此变量指定某些事件侦听器是否处于活动状态并指定是否显示特定链接。

例如我尝试但没有成功地工作:

    var accessLevel = 0;
    var userLoggedIn = "<?php Print($userLoggedIn); ?>";
    var userlevel = "<?php Print($userLevel); ?>";

    function map_initialize()
    {
        ////CONCERNING THIS PART#########///
        if (accessLevel >= 2){ //WHEN LOADED THIS IS NOT REGISTERING ANY RIGHT CLICK EVEN WHEN accessLevel is over 2!
            google.maps.event.addListener(map, 'rightclick', function(event) {

            //Some function that I don't want to run if accessLevel is <2

            });
           }
     }



    ////THIS WORKS FINE BELOW JUST PROVIDING IT
    if (userLoggedIn == true) {
        if (userlevel == "0") {
            accessLevel = 0;
            console.log(accessLevel);
        }    
        else if (userlevel == "1") {
            accessLevel = 1;
                        console.log(accessLevel);

        }
        else if (userlevel == "2"){
            accessLevel = 2;
                        console.log(accessLevel);

        }
        else if (userlevel == "3"){
            accessLevel = 3;
                        console.log(accessLevel);

        }
        else if (userlevel == "4"){
            accessLevel = 4;
                        console.log(accessLevel);

        }
    }

我不知道这是否有意义,但基本上我希望能够过滤某些可用的功能,具体取决于accessLevel的值。这是否可行(特别是与谷歌地图元素一起使用),我该怎么做。

2 个答案:

答案 0 :(得分:1)

您应该在示例代码的第13行中将)};更改为});

同时将userLoggedIn == true更改为:

userLoggedIn.toLowerCase().trim() === "true"

假设$userLevel的可能值为TRUEFALSEtruefalse

答案 1 :(得分:0)

解决了它,我所要做的只是交换if statement的位置,以便它在click事件监听器中。所以。

function map_initialize()
{


        google.maps.event.addListener(map, 'rightclick', function(event) {
            if (accessLevel >= 2){ 
                //Some function that I don't want to run if accessLevel is <2
            }
        });

 }