Почему мой jquery не выполняется? - PullRequest
0 голосов
/ 23 января 2010

Я пытаюсь показать и скрыть элемент div с помощью метода переключения jquery. У меня есть кнопка ссылки, которая вызывает onclick javascript на странице. При нажатии на кнопку ссылки страница выполняет обратную передачу, даже когда я объявил функцию javascript для возврата false. Кто-то понял, как решить эту проблему?

function toggleDiv(){
        $('#app').toggle("fast");
    }
</script>

<form runat="Server">

    <asp:LinkButton ID="LinkButton1" runat="Server" OnClientClick="toggleDiv(); return false;" Text="Show/Hide"></asp:LinkButton>

    <div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
          <p>jQuery Example </p> 
    </div>

</form>   

Ответы [ 6 ]

2 голосов
/ 23 января 2010

переписать ваши js к следующему, и это должно работать просто отлично

<script type="text/javascript">
    $('#<%= LinkButton1.ClientID %>').click(function(e) {
        $('#app').toggle("fast");
        e.preventDefault();
    });
</script>

<form runat="Server">
    <asp:LinkButton ID="LinkButton1" runat="Server" Text="Show/Hide"></asp:LinkButton>
    <div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
        <p>jQuery Example </p> 
    </div>
</form>   
0 голосов
/ 23 января 2010

Я считаю, что проблема в том, что вы помещаете ваши операторы Javascript в тот же тег сценария, что и тег, включающий jquery.

Я изменил ваш код на это, и это решило проблему для меня:

<script src="scripts/jquery-1.4.min.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
        $(document).ready(function() {
            $('#<%= LinkButton1.ClientID %>').click(function(e) {
                $('#app').toggle("fast");
                return false;
            });
        });
    </script>
0 голосов
/ 23 января 2010

Если просмотреть HTML-код, это выглядит так. Уведомление "javascript: __ doPostBack

<a id="btn" href="javascript:__doPostBack('btn','')">Show/Hide</a>

 <div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
 <p>jQuery Example </p>
 </div> 
0 голосов
/ 23 января 2010

Ссылка, вероятно, вызывает обратную передачу страницы, которая сбрасывает DIV в видимый. Самый простой способ исправить это - вернуть false из вашей функции.

<script type="text/javascript">
$('#<%= LinkButton1.ClientID %>').click(function(e) {
    $('#app').toggle("fast");
    return false;
});
</script>
0 голосов
/ 23 января 2010

Вы добавили готовый документ в начале своего кода? С вами При использовании серверного элемента управления Asp элементы управления называются .net, и, возможно, linkbutton1 не был передан как id linkbutton1 Я бы написал код так:

$(function(){
       $('a[id$=LinkButton1]').click(function() { 
        $('#app').toggle("fast"); 
        return false; 
    }); 

});
0 голосов
/ 23 января 2010

Я бы сделал это так:

$('#LinkButton1').click(function(e) {
  $('#app').toggle('fast');
  e.preventDefault();
});

Затем просто удалите событие OnClientClick. Должно быть немного проще и работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...