JQuery无法正常工作

时间:2010-03-24 19:43:35

标签: asp.net jquery asp.net-ajax

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

我有一个母版页

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

这是在母版页本身中编码的

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

现在我想实现一个Jquery来将css visibility属性设置为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

我认为使用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>

4 个答案:

答案 0 :(得分:4)

你真的有嵌套<script>标签还是错字?

<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>

答案 1 :(得分:1)

检查按钮的ID实际上是否未实际更改为

ctl00_ContentPlaceHolder1_lnkAddMore

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

如果是,你必须调整你的JQuery。

答案 2 :(得分:1)

我使用了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 :(得分:0)

当您在UpdatePanel下加载代码时,请尝试不将其包装在$(document).ready();中。对于AJAX事件,document不会触发就绪。