У меня есть эти кнопки, которые я генерирую в соответствии с количеством записей (которые я приношу из базы данных) с помощью ng-repeat
кнопки AngularJS, и я хочу, чтобы они становились зелеными, когда я наводил на них указатель мыши (например, success
кнопка начальной загрузки) и вместо этого из "Потеряно" сказать "Найдено". Как я мог сделать это с помощью jQuery? Я уже пробовал несколько других кодов, чтобы убедиться, что они работают у меня и не работают.
И здесь я оставляю часть index.html, где я генерирую кнопки:
<!-- MAIN CONTENT -->
<div id="mainContent" class="container-fluid">
<!-- aca hay 2 section más antes de la lista -->
<!-- LIST OF MISSING DOGS -->
<section id="view" class="row row-content" ng-controller="MainController">
<div class="col-xs-offset-3 col-xs-7 well">
<div class="col-xs-offset-3 col-xs-9">
<h1>View the list of Missing Dogs</h1>
</div>
<div class="col-xs-offset-2 col-xs-10">
<div class="form-group">
<label for="race" class="control-label col-xs-11 col-xs-offset-1">Search by race: </label>
<div class="col-xs-8 col-xs-offset-1">
<input class="form-control" name="race" type="text" required placeholder="Race of the dogs you are looking for" ng-model="query"/>
</div>
</div>
<div class="col-xs-10">
<table class="table table-striped table-responsive" ng-show="mascotas.length > 0 && mascotas != null">
<thead>
<tr>
<th>Name</th>
<th>Race</th>
<th>Description</th>
<th>Place</th>
<th>¿Found?</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="mascota in mascotas | filter: {raza : query}">
<td>{{ mascota.nombre }}</td>
<td>{{ mascota.raza }}</td>
<td>{{ mascota.descripcion }}</td>
<td>{{ mascota.lugar }}</td>
<td><button class="btn btn-danger btn-block" ng-click="encontrado(mascota.id)"><span>Lost</span></button></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</section>
</div>
РЕДАКТИРОВАТЬ: я добавляю код, который у меня не работает, я думаю, что это в JavaScript.
$(document).ready(function() {
$('.btn').hover(function() {
$(this).html('Found');
}, function() {
$(this).html('Lost');
});
});
Есть много способов сделать это. Я предлагаю динамическую альтернативу с
data-hover
. Итак, просто укажите текст, который вы хотите отобразить в файлеhover
.jQuery
Угловой JS и CSS
Поскольку вы используете Angular, вы можете использовать
ng-mouseover
иng-mouseleave
назначать ему класс в этих состояниях. Точно так же, чтобы изменить текст , вам нужны только атрибутыdata-
и ссылка на них через свойство CSScontent
.Я думаю, что это должно работать при наложении указателя:
Это работает при выходе из указателя:
Первое, что я делаю, это редактирую
css
del ,button
а затем меняю имя файлаspan
.Я оставляю вам пример работы с
jQuery
:Чтобы достичь того, что вы хотите сделать, вы можете использовать
hover()
функцию jQuery для захвата событий, когда вы наводите указатель мыши на кнопку и когда вы оставляете кнопку, что вам нужно сделать, это создать уникальный идентификатор для каждой кнопки.Как видите, в данном случае я добавил идентификатор кнопки.
Вы можете сделать уникальный идентификатор с идентификатором домашнего животного и сделать что-то подобное.
У вас уже есть несколько ответов с JavaScript/jQuery, я собираюсь дать вам один, который требует только CSS без необходимости чего-либо еще.
Идея состоит в том, чтобы использовать
::after
(o::before
) для изменения содержимого текста кнопки и применять цвета из класса .btn-success при наведении мыши (:hover
) на кнопку:Подробное объяснение ( по запросу в комментариях )
::after
является псевдоэлементом, который будет соответствовать последнему виртуальному потомку, имеющему элемент, к которому он добавлен. Y используется для добавления содержимого в конец выбранного элемента. Значение, которое вы поместите в свойствоcontent
, будет отображаемым текстом.Что делает это решение, так это удаляет текст «Потерянный» и «Найденный» в HTML, а затем добавляет его через псевдоэлемент
::after
. В обычном состоянии текст будет "Потерян":Теперь, когда указатель мыши наводится на кнопку, мы хотим, чтобы текст изменился на «Найдено». Для этого мы используем псевдокласс
:hover
, который отображается, когда пользователь наводит указатель мыши на элемент. В этом случае, когда пользователь наводит указатель мыши на кнопку,btn-danger
мы хотим, чтобы::after
значение изменилось, поэтому это достигается следующим образом.btn-danger:hover span::after
:Наконец, мы также хотим изменить цвет кнопки при нажатии на нее мышью, и для этого мы также используем уже упомянутый
:hover
(я получил правильные цвета из Bootstrap CSS):Надеюсь, я объяснил это хорошо. Скажи мне, если тебе нужна помощь, чтобы что-то понять.