我根据从服务器响应中收到的某些条件生成html元素。
@if($candidate->status == "new")
@if($candidate->priority == "")
<a id = "prioritize" data-value = "{{$candidate->id}}" ><img id = "priority" src="icons/non_priority.png"></img></a>
@else if($candidate->priority == "yes")
<a id = "prioritize" data-value = "{{$candidate->id}}" ><img id = "priority" src="icons/priority.png"></img></a>
@endif
@endif
还有更多像这样的内部if条件
@if($candidate->status == "scheduled")
@endif
@if($candidate->status == "good")
@endif
@if($candidate->status == "bad")
@endif
on click
函数仅适用于在&#34; new&#34; condtion很满意。
@if($candidate->status == "new")
@endif
并且不会处理由其他条件填充的其他元素。但是当我评论new
条件时。另一个条件如&#34; 好&#34;或&#34; 不好&#34;或&#34; 预定&#34;作品。
$(document).ready(function(){
$('#favorite').on('click',function(){
if ($(this).find('img').attr('src','icons/non_star.png')) {
var candidate_id = $(this).data('value');
alert(candidate_id);
}
});
$('#prioritize').on('click',function(){
if ($(this).find('img').attr('src','icons/non_priority.png')) {
var candidate_id = $(this).data('value');
alert(candidate_id);
}
});
});
虽然所有点击的ID都相同,但我并不理解这背后的问题。
答案 0 :(得分:0)
html id是唯一的。您应该使用àclass属性。 按类更改id并在jquery中通过.class更改#id。
.attr(attributeName,value)用于设置属性值而不测试她。 使用.attr(attributeName)==='value' 您还可以将data- *属性添加到此测试中,以便更加确定解决方案。
答案 1 :(得分:0)
您必须将class
用于可多次出现的html元素,因为id
对于html元素始终是唯一的。添加课程并更改您的代码,如下所示
$('.favorite').on('click',function(){
if ($(this).find('img').attr('src','icons/non_star.png')) {
var candidate_id = $(this).data('value');
alert(candidate_id);
}
});
答案 2 :(得分:0)
我认为您应该根据其状态为元素提供不同的ID,或者您应该使用他们的类名称来调用它们。