jQuery 不工作

Posted

技术标签:

【中文标题】jQuery 不工作【英文标题】:JQuery not working 【发布时间】:2011-01-31 10:32:37 【问题描述】:

我正在尝试在我的网页中实现 JQuery,但我无法成功实现它。

我有一个母版页

我为菜单栏添加了一个脚本,该脚本已经在使用由 Google 托管的 jquery

这是在母版页本身编码的

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>

现在我想实现一个 Jquery 来将 css 可见性属性设置为 true 或 false。 进入我的同一母版页的content page

    <script type="text/javascript">
            $(document).ready(function()  
                $("#lnkAddMore").click(function()
                 alert();
                  
                  );
            );
        </script>

这个 html 控件在我的UpdatePanel 下。 我不知道为什么它不起作用? 我在 UpdatePanel 下使用这个控件。

<input type="button" id="lnkAddMore" value="Add More" />

我试图在我的更新之外使用它 面板它运行成功但是 不在更新面板中

我认为将它与 UpdatePanel 一起使用会出现问题

这是我的页面来源

   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script> 


    <link href="../../Css/Domain.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript"> 
        $(document).ready(function()  
            $("#lnkAddMore").click(function()alert();$('#h').hide(100););
            $('#h').show(100);
        );
    </script> 


       <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <div id="divDomain" runat="server">
<asp:gridview/>
                <div style="text-align:right;">
                    <input type="button" id="lnkAddMore" value="Add More" />
                </div>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>

【问题讨论】:

ddmenu_open和ddmenu_timer函数的定义在哪里? @curtisk:它们的定义在同一个脚本标签内。我只是在这里删除它以使代码更具可读性。 JQuery 的那部分运行良好 您是否尝试将点击事件添加到由更新面板动态加载的元素? @ROMAN 不,我不会动态添加该元素 【参考方案1】:

你真的嵌套了&lt;script&gt;标签还是打错了?

<script type="text/javascript">

<script type="text/javascript">

如果这不是拼写错误,那么这可能就是问题所在。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function()   
        $('#ddmenu > li').bind('mouseover', ddmenu_open)
        $('#ddmenu > li').bind('mouseout',  ddmenu_timer)
    );

    $(document).bind('click', ddmenu_close); // do you really want to close on any click?
</script>

【讨论】:

我是这样用的 在您上面的代码中,您在另一个 【参考方案2】:

我在 jQuery 和 UpdatePanels 中使用了两种方法。

第一个是这样的: jQuery $(document).ready and UpdatePanels?

我在 Rick Strahl 的博客 (http://www.west-wind.com/Weblog/posts/154797.aspx) 上找到的另一种方法是在后面的代码中执行类似的操作:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "alertScript", 
    @" $(document).ready(function()  
            $("#lnkAddMore").click(function()
             alert();
              
              );
        );", true);

查看另一个示例:Problem with ScriptManager.RegisterClientScriptBlock and jQuery in Internet Explorer 8

还可以查看 jQuery 的 live() 事件订阅者。

【讨论】:

【参考方案3】:

检查按钮的 ID 是否实际上没有更改为类似

ctl00_ContentPlaceHolder1_lnkAddMore

因为它位于母版页的内容占位符中。

如果是这样,您必须调整您的 JQuery。

【讨论】:

@Lester 不,它的名字没有改变。我已将按钮作为 HTML 控件 与 UpdatePanel 一起使用时是否有其他方法可以调用 JQuery 这显示在源代码中。 ID 相同 【参考方案4】:

当您在 UpdatePanel 下加载代码时,请尽量不要将其包装在 $(document).ready(); 中。对于 AJAX 事件,不会在 document 上触发 Ready。

【讨论】:

我将页面代码编辑为

以上是关于jQuery 不工作的主要内容,如果未能解决你的问题,请参考以下文章

jquery 在 iframe 内的 IE 中不工作 其他浏览器正常工作

jquery ajax 链接工作/不工作它随着时间的推移而工作

jQuery .load() 不工作

jQuery .click() .animate() 不工作

jquery .stop() 不工作

为啥不从 jquery 工作和从 getElementById 创建视频变量呢?