我从C#调用javascript函数,如下所示:
ScriptManager.RegisterClientScriptBlock(this, GetType(), "script", "$(function () {initializeMap(); });", true);
在我添加主页面之前,它完美无缺:
MasterPageFile="~/Header.master
<%@ Register Assembly="myassembly" Namespace="mynamesapce" TagPrefix="mytag" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
将我的代码放在asp内容中:
<asp:Content ID="Content1" ContentPlaceHolderID="Body" runat="Server">
在我添加了所有这些后,javascript函数调用不再有效了,我收到了这个错误:
未捕获的ReferenceError:$未定义
当我点击错误时它也让我
$(function () {initializeMap(); });
你对这个问题有所了解吗?
答案 0 :(得分:1)
我敢打赌,如果jQuery声明仍然被声明,那么它在HTML中处于不同的位置。
我倾向于使用RegisterStartupScript
,但不是防弹,但不太可能导致这些问题,因为脚本将在页面底部呈现。
ScriptManager.RegisterStartupScript(this, GetType(), "script", "$(function () {initializeMap(); });", true);
答案 1 :(得分:1)
function fakeFixed(){
$fakeFixed = jQuery('.fake-fixed');
$window = jQuery(window);
jQuery(window).scroll(function(){
$fakeFixed.each(function(){
$this = jQuery(this);
$this.css('margin-top', $window.scrollTop() - $this.parent().position().top);
console.log();
});
});
} //cLose fakeFixed
fakeFixed();
仅在 <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400"></asp:ScriptManager>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
<!-- end of secondary bar -->
</asp:ContentPlaceHolder>
中添加ScriptManager
并将其从其他所有页面中删除,然后尝试一下..