$(function() {
var previous_page = "<?=$_SESSION["previous_page"]?>";
if (previous_page == "bar_settings")
$.club_settings();
$.club_settings = function() {
$(".bar_settings").fadeIn(1000);
$(".bar_photos").hide();
$(".bar_activities").hide();
$(".bar_campaigns").hide();
$(".etkinlik_ekle").hide();
$(".kampanya_ekle").hide();
}
})(jQuery);
我收到$.club_settings
不是函数的错误。如何在if条件下调用$.club_settings
?
答案 0 :(得分:3)
您在调用之后定义功能。像这样切换代码:
$(function() {
$.club_settings = function() {
$(".bar_settings").fadeIn(1000);
$(".bar_photos").hide();
$(".bar_activities").hide();
$(".bar_campaigns").hide();
$(".etkinlik_ekle").hide();
$(".kampanya_ekle").hide();
}
var previous_page = "<?=$_SESSION["previous_page"]?>";
if (previous_page == "bar_settings")
$.club_settings();
})(jQuery);
答案 1 :(得分:0)
JavaScript only hoists declarations, not initializations.
上面的参考显示了如何提升变量,但它也适用于函数。
$(function() {
var previous_page = "<?=$_SESSION["previous_page"]?>";
if (previous_page == "bar_settings")
club_settings();
function club_settings() {
$(".bar_settings").fadeIn(1000);
$(".bar_photos").hide();
$(".bar_activities").hide();
$(".bar_campaigns").hide();
$(".etkinlik_ekle").hide();
$(".kampanya_ekle").hide();
}
})(jQuery);
缺点是它会在你的$
变量中找到,这可能导致其他地方的代码破坏。但这可能是另一个问题。
尝试通过执行$.club_settings() = function club_settings() { ...
来解决此问题将无效,除非您按照迈克的建议重新排序代码