Проблемы jQuery в сценарии страницы ASP.Net Master-Child - PullRequest
1 голос
/ 05 января 2012

Проблемы с получением jQuery для работы в этом сценарии: Visual Studio 2010 .Net 4.0 Framework jQuery 1.7.1 (также пробовал 1.4.1)

Я создал веб-приложение ASP.Net по умолчанию в VS2010, позволяяинструмент для создания мастер-страницы и основных дочерних страниц (Defallt, About и т. д.).Затем я создаю новую страницу для тестирования jQuery - дочернюю страницу с использованием главной страницы по умолчанию.Я поместил несколько div'ов на страницу и кнопку HTML и подключил jQuery, чтобы изменить цвет фона div'ов при нажатии кнопки.Это действительно меняет цвет примерно на 1/10 секунды, но затем снова меняется.Я пробовал несколько разных вещей, таких как исчезновение элемента div при нажатии кнопки - тот же результат - исчезает, а затем возвращается обратно.Поэтому я попытался выдать предупреждение (из кода jQuery), когда кнопка нажата - это работало нормально.Кажется, что если я пытаюсь манипулировать CSS, возникает проблема - в противном случае все в порядке.Страница и сайт очень просты и просты.HTML-код и код сценария для страницы:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="jQuery.aspx.vb" Inherits="TestWeb.jQuery" %>

<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function () {
        $("button").click(function () {
            $("p").css("background-color", "red"); 
        });
    });

</script>

<h2>
   jQuery Integration Testing
</h2>

<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>

По некоторым причинам теги содержимого не являютсяпоявляется, когда я пропускаю приведенный выше код, поэтому ... Теги Script содержатся в теге <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">, а остальная часть HTML содержится в теге <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

1 Ответ

2 голосов
/ 05 января 2012

Кнопка отправляет страницу на сервер, поэтому ваш фон меняется, а страница обновляется до начала.Вам нужно добавить «return false» в конец обработчика кликов, чтобы отменить навигацию.

<script type="text/javascript">

    $(document).ready(function () {
        $("button").click(function () {
            $("p").css("background-color", "red"); 
            return false;
        });
    });

</script>
...