Mukthahar Shaik Ответов: 1

Как вызвать функцию jquery в updatepanel для внешнего HTML тега


у меня есть окно для сообщений. он будет обновляться каждые 1 секунду с помощью AJAX updatepanel.
у меня есть тег DIV (ID=cont) для полосы прокрутки окна сообщения.тег DIV находится вне панели обновления.
Полоса прокрутки всегда располагается снизу с помощью функции jQuery.
теперь проблема заключается в том, что при поступлении нового сообщения полоса прокрутки не опускается автоматически.
я попытался вызвать функцию jQuery в updatepanel следующим образом:

Sys.Application.add_load(updateDiv);


но это бесполезно.

Что я уже пробовал:

<form id="form2" runat="server">
    <div class="div" id="div" runat="server">
        <div id="cont" runat="server" class="cont">

        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>

        <asp:DataList ID="dt" runat="server" class="dt" onitemdatabound="dt_ItemDataBound">
        <ItemTemplate>

                 <p class="p" id="name" runat="server" style="margin-top:0px; display:none"><%#Eval("username") %></p>
                
                 <div class="div1" id="div1" runat="server">
                 <div id="message" runat="server" class="message"><%#Eval("message") %></div>
                 </div>

        </ItemTemplate>
        </asp:DataList>

        <asp:Timer ID="Timer1" runat="server" OnTick="GetTime" Interval="1000" />
        </ContentTemplate>
        </asp:UpdatePanel>

    </div>


    <div class="div2">
    <asp:TextBox ID="message" runat="server" TextMode="MultiLine" placeholder="Type Message" class="textbox"></asp:TextBox>
    <asp:Button ID="send" runat="server" Text="Send" class="send" 
            onclick="send_click" />
    <asp:RequiredFieldValidator ControlToValidate="message" ID="RequiredFieldValidator1" runat="server" ErrorMessage="Type message" ForeColor="Red"></asp:RequiredFieldValidator>
    </div>
    </div>
        <script src="Scripts/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        
        var objDiv = document.getElementById("cont");
        objDiv.scrollTop = objDiv.scrollHeight;
        function updateDiv() {
            $("#here").load(window.location.href + " #here");
        }
    </script>
    </form>

1 Ответов

Рейтинг:
2

aaronzeng

m new to Javascript and jQuery. I want to click a button and have a js function executed. (For this example, it's just an alert, but it's actually an ajax function.)

The first alert appears, but after I click the button, I never see the second ("did it") alert. It looks like javascript doesn't think the doIt() function is defined when the button is clicked.

Here's the relevant code:

$(document).ready(function()
{ 
    alert('ready');

    function doIt() {
        alert('did it');
    };
}
)

<body>
    <input name="Go" type="button" value="Go" onclick="doIt();"/>
</body>


Mukthahar Shaik

откройте дверь aaronzeng. вам нужно разместить это сообщение в разделе "Задать вопрос". в любом случае ваше решение здесь:

<script src="jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">

    $(document).ready(function () {
        alert('ready');
        $("#go").click(function () {
            alert('did it');
        });
    });
 </script>

<body>
<input name="Go" id="go" type="button" value="Go" onclick="doIt();"/>
</body>


всегда используйте селектор(имя класса, идентификатор элемента управления) для применения функции.