2010-06-15 4 views
1

У меня есть следующий фрагмент кода. У зависания есть проблема в Mozilla - он меняет цвет при наведении, но иногда он не возвращается обратно, когда мы выходим. Помните, что это происходит только иногда. Также в таких случаях, если я изучаю HTML с помощью FireBug, я вижу, что дополнительный класс назначается даже после того, как наведите курсор на него. Он работает нормально в IE. Это упрощенная версияJQuery Hover не работает Mozilla

Также, как вы можете видеть, я устанавливаю цвет на TR.Но это не меняет цвет на TextBoxes внутри TR. Как я могу убедиться, что цвет фона элементов управления, содержащихся в TR, также изменяется при зависании.

<style type="text/css"> 
     .HighLight 
     { 
      background-color:Fuchsia; 
     } 
     .Select 
     { 
      border:soild 2px Blue; 
      margin:3px; 
     } 
     </style> 
    <script type="text/javascript" src="jquery-1.4.2.js"> 

    </script> 
    <script type="text/javascript"> 
     $(function() { 
     $(".Select").hover(
      function() { 
       $(this).addClass("HighLight"); 
      }, 
      function() { 
       $(this).removeClass("HighLight"); 
      }); 
     }); 

My Markup, созданный ASP.NET Repeater Control - это таблица с назначенным классом класса TR.

<tr class="Select" > 
<td> 
<input type="checkbox" id="chkSelect" /> 
</td> 
<td> 
<input name="Repeater1$ctl11$tb" type="text" value="Sharp Bikes" id="Repeater1_ctl11_tb" /> 
</td> 
<td> 
<input name="Repeater1$ctl11$tb2" type="text" value="10/13/2004 11:15:07 AM" id="Repeater1_ctl11_tb2" /> 
</td> 
</tr> 

ответ

0

Если этот код сгенерирован, возможно, код jQuery не знает об этом.

Возможно, вы захотите использовать ключевое слово .live и посмотреть, что произойдет.

Кроме того, и это, вероятно, не будет иметь эффекта, но мне нравится использовать $(document).ready(, а не $(function(. Личные предпочтения, но у меня никогда не было этих проблем.

+0

Я не думаю, что это проблема, потому что Jquery Selector применяется, когда форма готова и основана на классе, а не на ID. Также он работает в IE и в основном работает в Mozilla – josephj1989

0

вы можете использовать Firebug в Firefox, чтобы знать, где это проблема.

, и вы должны положить ваши теги таблицы, как this

1

Хорошие новости! Я смог воссоздать вашу ошибку!

Проблема заключается в том, что ваш селектор jquery захватывает все элементы с помощью класса «Выбрать». Во время зависания вы добавляете класс «Выделение», поэтому для микросекунды jQuery переписывает определение класса для этого элемента и иногда отбрасывает его из правила select.

Попробуйте изменить ваш JQuery выбрать:

$(".Select").hover(... 

к:

$("tr[class~='Select']").hover(... 

или еще лучше, изменить внутренности вашей функции парения непосредственно влияют на стиль элемента:

//... 
function(){ 
    $(this).css('background',"fuchsia"); 
}, 
function(){ 
    $(this).css('background',''); //removes rule 
} 
//... 

... Сложно? Fuscia ?!

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