2015-06-15 5 views
2

Спасибо за проверку моего сообщения первым!О jQuery, почему mouseenter() на <input> не работает?

mouseenter() работает с тегом h2, но он не работает на <input>. Не могли бы вы сказать, что не так с моим кодом?

$(document).ready(function() { 
 
    $("h2").mouseenter(function() { 
 
    $(this).css("background-color", "green"); 
 
    }); 
 

 
    $("input").mouseenter(function() { 
 
    $(this).css("background-color", "green"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div> 
 
    <h2>Select Gaming Time:</h2> 
 
    <form method="post"> 
 
    <input type="radio" name="time" value="5">5 Minute (Hard) &nbsp;&nbsp;&nbsp;&nbsp; 
 
    <input type="radio" name="time" value="8">8 Minutes (Normal) &nbsp;&nbsp;&nbsp;&nbsp; 
 
    <input type="radio" name="time" value="10">10 Minutes (Easy) 
 
    </form> 
 
</div>

+3

Вы хотите, чтобы ваш переключатель был зеленым или рядом с ним? – BillyNate

+0

Он работает над входными элементами http://jsfiddle.net/5wbLnaep/ –

+0

@ Tushar: Входы - это радио, а не текст. Радио не может быть так стильно. – BillyNate

ответ

3

Вы в настоящее время пытаются включить радио-кнопки в зеленый фон. К сожалению, это невозможно. Однако вы можете обернуть текст рядом с радиоприемниками в ярлыке и повернуть зеленый цвет метки.

В качестве дополнительного преимущества вы можете сделать этикетку также доступной, используя атрибут for="" и соответствующие id="" s.

Также, это можно использовать, используя только cssh2:hover, label:hover { background- color: green; }. Сохранение большого количества байтов для загрузки!

A. Код Вольфа копируется из этого jsfiddle:

$(document).ready(function() { 
 
    $("h2").mouseenter(function() { 
 
     $(this).css("background-color", "green"); 
 
    }); 
 

 
    $("label:has(:radio)").mouseenter(function() { 
 
     $(this).css("background-color", "green"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div> 
 
    
 
<h2>Select Gaming Time:</h2> 
 

 
    <form method="post"> 
 
     <label for="time_5"> 
 
      <input type="radio" name="time" value="5" id="time_5">5 Minute (Hard) &nbsp;&nbsp;&nbsp;&nbsp;</label> 
 
     <label for="time_8"> 
 
      <input type="radio" name="time" value="8" id="time_8">8 Minutes (Normal) &nbsp;&nbsp;&nbsp;&nbsp;</label> 
 
     <label for="time_10"> 
 
      <input type="radio" name="time" value="10" id="time_10">10 Minutes (Easy)</label> 
 
    </form> 
 
</div>

+1

см. Например, http://jsfiddle.net/eptnogk7/ –

+0

Спасибо, Вольф, я собирался создать код и добавить его в сообщение. Ваша скрипка спасла меня некоторое время, плюс ваш 'has (: radio)' действительно милый! – BillyNate

0

Ну, чтобы избежать путаницы, что ваш mouseenter не работает на элементах входного типа. Это не так. Оно работает . Вы можете увидеть here. Как сказано выше в ответе, лучше изменить текст рядом с переключателем css.