以下源代码中 typedef $ 的含义是什么。我读过this link。
typeof允许以前从未声明过标识符。所以在这方面更安全:
但是他们在这里使用的是if (typeof $ !== 'undefined')
,$
的含义是什么。
<script type="text/javascript">
if (typeof horizon.d3_line_chart !== 'undefined') {
//alert("test1");
//When first time It give alert means it is defiend
horizon.d3_line_chart.init("div[data-chart-type='line_chart']",
{'auto_resize': true});
}
if (typeof $ !== 'undefined') {
//alert("alert2");
/*
We first time we run resource usage, then It will show alert, and date options are not showing. So means first time It hides the date options. Means '$' varaible is defined.
*/
show_hide_datepickers();
} else {
addHorizonLoadEvent(function() {
show_hide_datepickers();
});
}
function show_hide_datepickers() {
$("#date_options").change(function(evt) {
// Enhancing behaviour of selectbox, on 'other' value selected, I don't
// want to refresh, but show hide the date fields
if ($(this).find("option:selected").val() == "other"){
evt.stopPropagation();
$("#date_from input, #date_to input").val('');
$("#date_from, #date_to").show();
} else {
$("#date_from, #date_to").hide();
}
});
if ($("#date_options").find("option:selected").val() == "other"){
$("#date_from, #date_to").show();
} else {
$("#date_from, #date_to").hide();
}
}
</script>
答案 0 :(得分:3)
在Javascript中,$
只是一个变量名,所以:
if (typeof $ !== 'undefined')
只是检查$
变量是否已定义。在使用jQuery的代码中,$
符号通常是jQuery
对象的别名,因此此代码将检查jQuery是否存在或者jQuery是否使用$
符号或不
您没有向我们展示addHorizonLoadEvent()
代码,但是逻辑会建议可能负责加载jQuery或者知道包含jQuery的一组内容何时完成加载并且如果使用了代码发现任何负载$
尚未完成加载。
答案 1 :(得分:0)
在您的情况下,作者只是检查是否存在并加载了某些库:
(typeof $ !== 'undefined')
- &gt;使用$
(在您的情况下为JQuery)(typeof horizon.d3_line_chart != 'undefined')
- &gt;图表库?这允许在加载库时执行一些代码,如果没有加载则不会崩溃。也可以用来能够使用不同的库,如果不存在则尝试另一个库。