也许你们可以帮我解决这个问题,过去30分钟我一直在努力。
假设我有四个具有相同类的元素。
<div class="test">hi</div>
<div class="test">hey</div>
<div class="test">yo</div>
<div class="test">What's up</div>
如何选择点击的那个?
我能够让它像这样工作:
$('.test').click(function() {
$(this).toggleClass("btn-danger btn-success");
});
但是,我需要在ajax调用之后不点击成功而触发它,所以我需要能够做这样的事情(尝试失败):
$('.test', this).toggleClass("btn-danger btn-success"); // This did not work
$(this).find('.test').toggleClass("btn-danger btn-success"); // Also did not work
有什么建议吗?非常感谢!!
答案 0 :(得分:3)
听起来像是在单击其中一个元素时进行了ajax调用,但是你需要在ajax调用中传递不同的值,具体取决于单击的元素。您可以执行以下操作,而不是使用“onclick”属性:
HTML:
<div class="test" data-param1="value1a" data-param2="value2a">hi</div>
<div class="test" data-param1="value1b" data-param2="value2b">hey</div>
<div class="test" data-param1="value1c" data-param2="value2c">yo</div>
<div class="test" data-param1="value1d" data-param2="value2d">What's up</div>
JavaScript的:
$('.test').click(function() {
var $div = $(this);
$.ajax(url, {
data: {
param1: $div.attr('data-param1'),
param2: $div.attr('data-param2')
},
success: function() {
$div.toggleClass("btn-danger btn-success");
}
});
});
当然,您可以使用PHP变量设置data-
属性的值。
答案 1 :(得分:1)
使用触发功能....
所以附上点击处理程序......
$('.test').on('click', function() {
$(this).toggleClass("btn-danger btn-success");
});
然后在你的ajax成功函数中......触发点击......
$('.test').trigger('click');
但确定触发哪一个将成为诀窍。
如何根据ajax ????
知道要点击哪一个如果您正在进行ajax调用,根据您点击的链接,那么解决方案就更简单了.......因为您已经知道点击了哪个链接
$('.test').click(function() {
var link = $(this);
$.ajax(url, {
success: function() {
link.toggleClass("btn-danger btn-success");
}
});
});
答案 2 :(得分:1)
$('.test').click(function(){
clicked = $(this);
});
上面的代码返回单个项目的数组。所以使用索引0来选择它如下:
$('.test').click(function(){
clicked = $(this)[0];
});
答案 3 :(得分:0)
是否无法为每个ID提供一个ID,以便您可以直接访问它们?
如果您在回调函数上触发它们,您可以在变量中创建对单击的div的引用吗?
即。
var clicked;
$('.test').click(function(){
clicked = $(this);
});
然后在你的ajax回复中:
clicked.toggleClass("btn-danger btn-success");