我在插入符号类- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
UIImage *image = [self.fetchedImages objectAtIndex:indexPath.row];
if (image) {
// If there is image don't bother fetching the image.
cell.imageView.image = image;
}
else {
NSURL *imageURL = [self.imageURLs objectAtIndex:indexPath.row];
[cell.imageView sd_setImageWithURL:imageURL placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image) {
[self.fetchedImages replaceObjectAtIndex:indexPath.row withObject:image];
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
}];
return cell;
}
下面有这个html代码。现在我希望如果用户点击插入符号,则插入符号类将被删除并被fa fa-caret-down
类替换。同样,如果他点击这个插入课程,它将回到插入课堂。
(任何其他方式也没关系)。我试过这个:
fa fa-caret-up
[这个toogle在此代码中运行也非常糟糕]
但这只适用于第一部分。如果我试图回到插入符号,则没有任何反应。
这就是我的HTML:
$(document).ready(function() {
$('.fa-caret-down').on('click', function () {
$(this).removeClass('fa-caret-down').addClass('fa-caret-up');
});
$(this).removeClass('fa-caret-up').addClass('fa-caret-down');
});
我仍然是jquery / Js的新人,对不起我的英语不好。
感谢您的帮助!
答案 0 :(得分:4)
在插入符号元素上设置另一个类(caret-icon
)并将click事件附加到该类:
<i class="caret-icon fa fa-caret-down"></i>
并使用toggleClass()
方法:
$(document).on('click', '.caret-icon', function() {
$(this).toggleClass('fa-caret-up fa-caret-down');
})
答案 1 :(得分:0)
使用'if - else'条件和'hasClass'方法。
这是Jquery
$(document).ready(function () {
$('.fa-caret-down').on('click', function () {
if ($(this).hasClass('fa-caret-down')) {
$(this).removeClass('fa-caret-down').addClass('fa-caret-up');
}else{
$(this).removeClass('fa-caret-up').addClass('fa-caret-down');
}
});
});
答案 2 :(得分:0)
$('.fa-caret-down')
找到DOM - 在执行代码时具有类fa-caret-down
的元素,在初始化后的情况下。这些元素会获得一个删除fa-caret-down
并添加fa-caret-up
的点击处理程序。具有此处理程序的元素稍后不会更改。因此,再次点击其中一个元素也会移除fa-caret-down
并添加fa-caret-up
。
如果元素当前具有类fa-caret-down
或fa-caret-up
,则必须签入处理程序。如果它有类fa-caret-down
,则必须删除fa-caret-down
并添加fa-caret-up
。如果它有fa-caret-up
类,您必须删除fa-caret-up
并添加fa-caret-down
。
您当前的代码$(this).removeClass('fa-caret-up').addClass('fa-caret-down');
无效,因为它在初始化后仅执行一次。