Не работает событие hover();
На сайте есть форма обратной связи с checkbox поверкой от спама.
Если выбран чекбокс, то нужно чтобы при наведении на кнопку оправить менялся её фоновый цвет. Помогите разобраться почему не работает.
var result=$('input[type="checkbox"]').prop("checked");
if (result==true) {
$('input [type="submit"]').hover(
function() {
$(this).css({'background':'black'});
},
function () {
$(this).css({'background':'black'}).remove();
}
)
};
|
maxg5,
почему строка 2 не в строке 5? |
maxg5,
$(function() {
var result = $('input[type="checkbox"]');
$('input[type="submit"]').hover(function() {
if (result.prop("checked")) $(this).css({
"background": "black"
})
}, function() {
$(this).css({
"background": ""
})
})
});
|
А если нужно добавить не css свойство, а класс.
Как правильно будет? У меня вот что получилось. Но не работает.
$(function() {
var result = $('input[type="checkbox"]');
$('input[type="submit"]').hover(function() {
if (result.prop("checked")) $(this).addClass("hover_b");
}, function() {
$(this).removeClass("hover_b");
})
});
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.hover_b {
background-color: #FF00FF;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var result = $('input[type="checkbox"]');
$('input[type="submit"]').hover(function() {
if (result.prop("checked")) $(this).addClass("hover_b");
}, function() {
$(this).removeClass("hover_b");
})
});
</script>
</head>
<body>
<input type="checkbox">
<input type="submit">
</body>
</html>
|
Если разместить css класс в <head></head> то у меня тоже работает.
Я не до конца объяснил вопрос. У меня стили в файле style.css активной темы сайта. Сайт на WordPress. Можно как то брать стили из style.css файла? |
maxg5,
расположение style.css никак не влияет на скрипт. проблема скорее в том что нет $ на момент работы скрипта, попробуйте заменить все $ на jQuery |
Цитата:
Есть еще варианты? |
maxg5,
делайте пример или ждите телепата |
рони,
Если делаю пример, все работает. А на самом сайте не работает скрипт. Причем не один скирпт с сайта не работает со стилями из style.css. Не знаю где искать ошибку. В WP? |
maxg5,
дай ссылку на сайт |
http://www.kuchenkov-sergey.myjino.ru
В шапке есть кнопка "Заказать обратный звонок", которая открывает модальное окно. Если в этом окне чекбокс не выбран, то при наведении на кнопку отправить ничего не должно происходить.А если выбран то при наведении курсора на кнопку к ней должны добавляться стили. box-shadow:0 3px 2px rgba(0,0,0,.4); -moz-box-shadow:0 3px 2px rgba(0,0,0,.4); -webkit-box-shadow:0 3px 2px rgba(0,0,0,.4);")); Стили должны быть в style.css |
Цитата:
input[type="submit"]:hover, input[type="reset"]:hover {
box-shadow:0 3px 2px rgba(0,0,0,.4);
-moz-box-shadow:0 3px 2px rgba(0,0,0,.4);
-webkit-box-shadow:0 3px 2px rgba(0,0,0,.4);"));
}
|
Ну так сейчас правила добавляются вне зависимости от того, выбран чекбокс или нет.
А нужно что бы правило добавлялось только если выбран чекбокс. А если убрать css правило, и использовать jQuery скрипт со стилем hover_b, то скрипт не видит стили из stye.css |
maxg5,
удаляешь в style.css со строки 3063 эти правила
input[type="submit"]:hover, input[type="reset"]:hover {
box-shadow:0 3px 2px rgba(0,0,0,.4);
-moz-box-shadow:0 3px 2px rgba(0,0,0,.4);
-webkit-box-shadow:0 3px 2px rgba(0,0,0,.4);"));
}
и удаляешь со строки 2601 эти правила
.button:hover,
.reply a:hover {
background: #c0c0c0;
box-shadow:none;
-moz-box-shadow:none;
-webkit-box-shadow:none;
}
и будет тебе счастье... <img src='http://s019.radikal.ru/i632/1610/1b/142c8e0ea39e.gif'> |
destus,
Спасибо, все работает. |
| Часовой пояс GMT +3, время: 03:47. |