asp.net onMouseEnter, чтобы изменить расположение кнопки - PullRequest
1 голос
/ 26 августа 2011

Я занимаюсь разработкой карточной игры для Visual Studio и aspx.

В теге Head страницы я добавил функцию javascript, например:

<script type="text/javascript">
    function cardMouseEnter()
    { document.forms[0].bCard1.style.top -= 5; }
</script>

Карта представленаasp: ImageButton, положение которого является абсолютным, а свойство стиля выглядит следующим образом на странице .aspx:

<asp:ImageButton ID="bNCard1" runat="server" 
        style="position: absolute; top: 3px; left: 2px;  
        height: 98px; width: 73px;" ></asp:ImageButton>

В событии загрузки файла code-behind, которое я добавил:

bCard1.Attributes.Add("onMouseOver", "cardMouseEnter()")

Когда я пытаюсь запустить страницу и помещаю мышь на карту, у меня появляется ошибка javascript:

Ошибка времени выполнения Microsoft JScript: невозможно получить значение свойства 'style': объект имеет значение null или не определено.

И когда я проверяю код, это то, что я вижу на сгенерированной aspx (динамической) странице:

<input type="image" name="bCard1" id="bNorth1" onMouseOver="cardMouseEnter()" src="SomeCard.jpg"
       style="border-width:0px;top: 3px; left: 2px; position: absolute; 
       height: 106px; width: 73px; font-size:1.4em;" />

Я чувствую, что это странно, поскольку динамически сгенерированная страница имеет "стиль"" имущество.Любая подсказка?

Ответы [ 3 ]

1 голос
/ 26 августа 2011

Сценарий:

function cardMouseEnter(id)
{ 
    document.getElementById(id).style.top -= 5; 
}

Кодовый код:

bNCard1.Attributes.Add("onMouseOver", "cardMouseEnter('" + bNCard1.ClientID + "')");

Разметка:

<asp:ImageButton ID="bNCard1" runat="server" 
        style="position: absolute; top: 3px; left: 2px;  
        height: 98px; width: 73px;" ></asp:ImageButton>
1 голос
/ 26 августа 2011

Просто сделайте это:

<input type="image" name="bCard1" id="bNorth1" onMouseOver="cardMouseEnter(this)" ...>

<asp:ImageButton ID="bNCard1" runat="server" onmouseover="cardMouseEnter(this)" ...> 

И вы JS функция:

function cardMouseEnter(ctrlToMove) { 
   ctrlToMove.style.top -= 5; 
} 
1 голос
/ 26 августа 2011
  1. Используйте document.getElementById (), чтобы получить рассматриваемый элемент, и .getAttribute (), чтобы получить стиль, и setAttribute (), чтобы установить его
  2. Я настоятельно рекомендую вам посмотреть jquery на что-нибудь javascript http://jquery.com/
...