2012-02-25 5 views
0

Это мой первый раз с использованием jquery, и я не знаю, почему этот простой раздел не будет работать. У меня есть две кнопки, одна из которых скрывает div и другую, которая показывает это, но кнопки продолжают делать обратную передачу, даже если я установил UseSubmitBehaviour в false.Простой jquery не работает

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#Social_WorkerButton").click((function() { 
     $("#SponsorDetails").hide("slow"); 
    }); 
    $("#SponsorButton").click(function() { 
     $("#SponsorDetails").show("slow"); 
    }); 
}); 

это блок сценария внутри головы, ссылка на файл Jquery находится в MasterPage.

EDIT: я получаю предупреждение о том, что вторая точка с запятой должна быть, или), но я не понимаю, почему, код прямо из w3 школы

+0

Когда конечные загрузки страницы в браузере, проверьте, если JQuery-x.x.x.js включен в исходный код вашей страницы! – linuxeasy

+0

кажется, что ссылка указана наверху, но не фактический код – Matt

+0

проверить консоль js (ctrl + j в Chrome и FF для ошибок) –

ответ

3

Вы можете использовать аргумент мероприятия preventDefault() остановить по умолчанию поведение от происходящего (в данном случае кнопка отправки).

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#Social_WorkerButton").click((function (e) { 
     e.preventDefault(); 
     $("#SponsorDetails").hide("slow"); 
    }); 
    $("#SponsorButton").click(function (e) { 
     e.preventDefault(); 
     $("#SponsorDetails").show("slow"); 
    }); 
}); 
+0

Пробовал, но все еще делает postback – Matt

+0

Хм ... нормально, что работает. Вы также можете попробовать вернуть false в конце каждого обработчика кликов. Вы уверены, что эти селекторы правильно находят кнопки? Возможно, разместите предупреждение в верхней части обработчика, чтобы узнать, стреляют ли эти обработчики. – HackedByChinese

+0

Были добавлены дополнительные круглые скобки, как указано Nix, но мне все еще нужен метод preventDefault(), чтобы остановить обратную передачу, спасибо – Matt

2

Я вижу, что вы отметили ASP.NET. Вы не используете ASP: элементы управления, не так ли? Я не вижу причин для этого, если вы не используете их в своем коде. Попробуйте использовать простой HTML <input type="button" /> или просто <button />.

EDIT

$(document).ready(function() { 
    $("#Social_WorkerButton").click(function() { // <-- Extra parenteses removed 
     $("#SponsorDetails").hide("slow"); 
    }); 
    $("#SponsorButton").click(function() { 
     $("#SponsorDetails").show("slow"); 
    }); 
}); 
+0

Я использую asp: buttons, но я также пробовал его с помощью обычных кнопок html и предложения по приведенному выше ответу и все еще не сработало. – Matt

+1

У вас есть одно родительское слишком много в первой функции. – Nix

+0

Хорошо, нашел его, спасибо. Также необходим метод preventDefault() выше, поэтому я должен отметить это как выбранный ответ. еще раз спасибо – Matt

Смежные вопросы