检查字符串变量是否是某个字符串值

发布于 2024-11-14 21:02:39 字数 1136 浏览 1 评论 0原文

我的网页上有一个伪上下文菜单脚本。这个想法是,脚本将检查您悬停的元素是否具有特定的类。如果是,它将字符串变量设置为某个值。这样,当按下 ctrl 时,我可以检查字符串变量内容以确定应取消隐藏哪个上下文菜单。

var cmEl = "";

$('div').live('mouseover', function(e){
    e.stopPropagation();

    var actEl = $(this);

    if (actEl.hasClass("B_Info")) {
        var cmEl = "BiP";
    } else if (actEl.hasClass("BiO")) {
        var cmEl = "BiO";
    } else if (actEl.hasClass("myOpt")) {
        var cmEl = "myOpt";
    } else {
        var cmEl = "GEN";
    }
    $("#tell").html("" + cmEl + "");

});

$(document).keydown(function(e) {
    if (e.ctrlKey) {
        if (cmEl.match('BiP')) {        
            $("#Badge_C_M").removeClass("HIDE");            
            $(this).remove();
        } else if (cmEl === "BiO") {        
            $("#Opt_C_M").removeClass("HIDE");          
        } else if (cmEl === "myOpt") {      
            $("#Count_C_M").removeClass("HIDE");            
        } else {
            $("#Gen_C_M").removeClass("HIDE");          
        }
    }
});

通过 html 读数,我可以看到该变量确实被设置为所需的值,但确定要显示哪个菜单的后一部分不起作用。

同样,我的第一个脚本仅检查 div,但我希望它检查任何元素类型;或者至少是 div 和 imgs。

I have a psuedo contextual menu script on my webpage. The idea is that a script will check to see if the element you're hovering over has a certain class. If it does, it sets a string variable to a certain value. This way, when ctrl is pressed, i can check the string variable content to determine which contextual menu should be un-hidden.

var cmEl = "";

$('div').live('mouseover', function(e){
    e.stopPropagation();

    var actEl = $(this);

    if (actEl.hasClass("B_Info")) {
        var cmEl = "BiP";
    } else if (actEl.hasClass("BiO")) {
        var cmEl = "BiO";
    } else if (actEl.hasClass("myOpt")) {
        var cmEl = "myOpt";
    } else {
        var cmEl = "GEN";
    }
    $("#tell").html("" + cmEl + "");

});

$(document).keydown(function(e) {
    if (e.ctrlKey) {
        if (cmEl.match('BiP')) {        
            $("#Badge_C_M").removeClass("HIDE");            
            $(this).remove();
        } else if (cmEl === "BiO") {        
            $("#Opt_C_M").removeClass("HIDE");          
        } else if (cmEl === "myOpt") {      
            $("#Count_C_M").removeClass("HIDE");            
        } else {
            $("#Gen_C_M").removeClass("HIDE");          
        }
    }
});

Via the html read-out, i can see that the variable is indeed being set to the desired values, but the latter part, that determines which menu to show, doesn't work.

As well, my first script only checks divs, but i'd like it to check any element type; or at least divs and imgs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无悔心 2024-11-21 21:02:39

您正在函数范围内重置 cmEl 的值。你需要像这样重写它......

if (actEl.hasClass("B_Info")) {
    cmEl = "BiP";
} else if (actEl.hasClass("BiO")) {
    cmEl = "BiO";
} else if (actEl.hasClass("myOpt")) {
    cmEl = "myOpt";
} else {
    cmEl = "GEN";
}

现在你的全局变量 cmEl 正在设置,因此可以在后续的 .keydown 函数中读取。如果你想读取不同的元素,你可以像这样绑定它们......

$('div, img, input').mouseover(function(e){ ...code... });

希望这有帮助。

You're resetting the value of cmEl in your function scope. You need to just rewrite it like this....

if (actEl.hasClass("B_Info")) {
    cmEl = "BiP";
} else if (actEl.hasClass("BiO")) {
    cmEl = "BiO";
} else if (actEl.hasClass("myOpt")) {
    cmEl = "myOpt";
} else {
    cmEl = "GEN";
}

Now your global variable cmEl is being set, thus can be read in your subsequent .keydown function. If you want to read different elements, you can bind them like this....

$('div, img, input').mouseover(function(e){ ...code... });

hope this helps.

感情旳空白 2024-11-21 21:02:39

如果要选择所有元素,请使用 $('*')。另外,在您的脚本中,不要

var cmEL="..."

每次分配该值时都使用。 “Var”导致了问题。

If you want to select all elements use $('*'). Also in your script do not use

var cmEL="..."

everytime you asign the value. "Var" is causing the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文