我有一系列按钮,点击后,打开或关闭我网站上的内容。我需要能够跟踪哪一个是打开的,这样当我再次点击该按钮时,我将知道是否关闭内容。
这是我的数组:
var imageOptions = ['.corporateNeeds', '.marketResearch', '.corpStrategic', '.employeeTraining', '.administration', '.wellnessManagement'];
点击其中一个按钮后会打开的内容。
var options = ['.option1', '.option2', '.option3', '.option4', '.option5', '.option6'];
然后我遍历数组并显示点击的内容:
jQuery.each(imageOptions, function (k) {
$(imageOptions[k]).click(function () {
hideOptions()
$(options[k]).fadeIn();
$(options[k].contentOpen) = true;
});
});
我想知道的是,是否有一种方法可以跟踪当前点击的按钮,通过点对一个变量进行语法化,即( $(options [k] .contentOpen)= true; )到该数组上按钮。我知道这可以在AS中完成,但我需要知道如何在jQuery中执行此操作。
谢谢;)
答案 0 :(得分:2)
我不确定你要完成什么,但我假设您需要为每个按钮(打开/关闭)保持状态,以便您知道是否需要打开或关闭相关内容框。
为此,您可以在jQuery中使用data()函数:
jQuery.each(imageOptions, function (k) {
$(imageOptions[k]).click(function() {
if ($(this).data("open") == "true") {
// hide content
$(this).data("open","false");
} else {
// show content
$(this).data("open","true");
}
});
});
答案 1 :(得分:2)
为什么不使用.data()
存储值?
例如
$('button').click(function(){
if ($('div#window').data('contentOpen') ) {
// means open
$('div#window').data('contentOpen',false); // set it to close
// do something here
} else {
// means close
$('div#window').data('contentOpen',true); // set it to open
// do something here
}
})
答案 2 :(得分:0)
你可以创建一个匿名对象数组来完成这个任务,例如
var imageOptions = ['.corporateNeeds', '.marketResearch', '.corpStrategic', '.employeeTraining', '.administration', '.wellnessManagement'];
var options = [{ selector: ".option1", contentOpen: false }, { selector: ".option2", contentOpen: false }, { selector: ".option3", contentOpen: false }];
jQuery.each(imageOptions, function (k) {
$(imageOptions[k]).click(function () {
hideOptions()
$(options[k].selector).fadeIn();
options[k].contentOpen = true;
});
});