检查字符串变量是否是某个字符串值
我的网页上有一个伪上下文菜单脚本。这个想法是,脚本将检查您悬停的元素是否具有特定的类。如果是,它将字符串变量设置为某个值。这样,当按下 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在函数范围内重置 cmEl 的值。你需要像这样重写它......
现在你的全局变量 cmEl 正在设置,因此可以在后续的 .keydown 函数中读取。如果你想读取不同的元素,你可以像这样绑定它们......
希望这有帮助。
You're resetting the value of cmEl in your function scope. You need to just rewrite it like this....
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....
hope this helps.
如果要选择所有元素,请使用 $('*')。另外,在您的脚本中,不要
每次分配该值时都使用。 “Var”导致了问题。
If you want to select all elements use $('*'). Also in your script do not use
everytime you asign the value. "Var" is causing the problem.