2015-10-20 138 views
-2

對不起傢伙..愚蠢的問題的後代元素。但似乎無法得到這個工作..如何選擇點擊的元素

<td width='17px;' id='".$line["line_id"]."' class='expandable'> 
    <i class='icons-toggle-down icons-black' title='Toggle purchase/deliveries..'></i> 
</td> 

$('.expandable').on('click', function(){ 
    var id=$(this).attr('id'); 
    $('#'+id+'.data_line').toggle(); 
    if ($('#'+id+'.expandable').hasClass('icons-toggle-down')) 
     $('#'+id+'.expandable > i').removeClass('icons-toggle-down').addClass('icons-toggle-up'); 
    else 
     $('#'+id+'.expandable > i').removeClass('icons-toggle-up').addClass('icons-toggle-down'); 
}); 

當按下TD( '.expandable')data_line切換正常..但類圖標不。 (字體真棒撥動式和撥動下)

我pussled - 這可能是SOOO簡單;-)

+1

只是要清楚..因爲你的js建議否則,你有多個元素具有相同的ID? – rlemon

+0

我的建議是將標記添加到標記,您可以將其與父td關聯。例如然後您可以參考直。看起來你試圖引用的ID,但它沒有在你的例子中。 –

+0

你的HTML不符合標準(使用雙引號),並且你選擇的ID是「* interesting *」,要溫和:-)如果我是你,我會考慮一些重構。 – Amit

回答

1

我要去大大簡化,試圖回答。看看這是否有幫助。

$('.expandable').click(function() { 
    $(this).find('i').toggleClass('icons-toggle-down icons-toggle-up'); 
}); 

我不確定在哪裏data_line是,但這可能是一個簡單的補充。

+0

如果你在大幅簡化業務,至少做'$('i',this)' – Amit

+1

我不喜歡簡化到我的腳本對新手而言可讀性較差的程度。 – isherwood

+0

兩者都像魅力一樣工作。 ;-) – osomanden

相關問題