【发布时间】:2018-01-03 08:06:29
【问题描述】:
我有这段代码,它获取点击的超链接的类,并在该超链接中切换特定 div 的 播放 和 暂停图标。我的 Javascript 逻辑有问题:
var mediaClicked_class = "";
var previousMediaClicked_class = "";
var pauseIconStatus = null;
// Get class of clicked hyperlink
function mediaClick_class(clicked_class) {
alert(pauseIconStatus + " : Initial pause Icon status");
mediaClicked_class = clicked_class; // when i click map hyperlink, pass respective class into variable
preEmptivePlay(mediaClicked_class, pauseIconStatus);
}
function preEmptivePlay(mediaClicked_class, pauseIconStatus) {
if (pauseIconStatus == null) { //global var. init.
//toggle class of currently clicked div.icon
$("div.icon_" + mediaClicked_class).toggleClass("playicon pauseicon");
var pauseIconAvailability = $("div.icon_" + mediaClicked_class).hasClass("pauseicon");
if (pauseIconAvailability) { //true - playing
pauseIconStatus = 1;; //pause icon is active i.e. song is playing
previousMediaClicked_class = mediaClicked_class; //store current class to be called later
alert(pauseIconStatus + " : Current icon status");
} else { //false - not playing
pauseIconStatus = 0;; //pause icon is inactive i.e. song is not playing
previousMediaClicked_class = mediaClicked_class;
alert(pauseIconStatus + " : Current icon status");
}
}
}
问题是当我点击超链接时,这个函数被调用,第四行每次都将pauseIconStatus初始化为null,而不是在后续调用中保留可能的值0。
我在哪里可以声明这个变量以初始化为 null,然后在后续调用中取消重新初始化?
【问题讨论】:
-
你的逻辑看起来不错。如果没有看到一个有效的例子,很难说出了什么问题。控制台中是否有任何错误?你看到
alert()了吗? -
@RoryMcCrossan,带有以全局命名的参数的函数的诅咒再次来袭! =) (我运行了好几次才终于点击到它原来的样子)
-
@Rob 很好看 - 我完全错过了 :)
标签: javascript jquery scope global-variables