好的,我有这个问题。我在一个函数中使用了这个变量,但是我必须在另一个函数中重置它,但是我不知道如何完成它。
我的代码如下所示:
var city_flag = null;
$(".button").click(function(){
var city = $(this).attr("id");
if(city_flag == city){
city_flag = null;
} else {
city_flag = city;
}
});
而且我得到了这个:( coffescript)
$.fn.extend
somelistMap: (options) ->
// some settings here
// on init addCloseClickListenerToInfoWindow called
addCloseClickListenerToInfoWindow = (id) =>
google.maps.event.addListener markers[id]["infoWindow"], 'closeclick', =>
resetMap()
$(".city_tab").css("background", "none")
$(".all_dealers").removeClass("row_hide")
$(".all_dealers").addClass("row_show")
city_flag = null //Here i have to reset it
我怎样才能让它发挥作用?我尝试将城市旗帜放在功能之外,但它不起作用!
编辑:忘记提及环境是铁路......如果改变了什么
答案 0 :(得分:2)
声明全局变量不是最佳实践,但它将解决此特定问题。
只要您访问city_flag
:window.city_flag
。
例如:
window.city_flag = null;
或
window.city_flag = city;
答案 1 :(得分:1)
将city_flag
设为GLOBAL var
之类,
var flag = null,
city_flag = null;
// ..... your remaining code
您也可以使用this.id
代替$(this).attr("id")
,
var city = this.id;
答案 2 :(得分:0)
要完成这项工作,请执行以下更改(我不知道您的完整coffeescript结构,这只是一个假设)
$.fn.extend
somelistMap: (options) ->
// some settings here
// on init addCloseClickListenerToInfoWindow called
//////////////////
var that = this;
///////////////
addCloseClickListenerToInfoWindow = (id) =>
google.maps.event.addListener markers[id]["infoWindow"], 'closeclick', =>
resetMap()
$(".city_tab").css("background", "none")
$(".all_dealers").removeClass("row_hide")
$(".all_dealers").addClass("row_show")
that.city_flag = null //Here i have to reset it
答案 3 :(得分:0)
Okey ...我尝试了所有提到的东西,似乎没有任何效果:/
所以我想出了这个解决方案,我创建了隐藏元素,只是用("#hidden").html()
取得了我的价值并重置了它("#hidden").html("null")
我知道这不是最佳解决方案,但这种解决方法有效!