2017-07-31 53 views
0

我在jQuery中選擇表格的單行時出現問題,這個表格有一個類0123',然後定義了一個可變數字,所以我的第一行將有一個類edit1,第二個edit2等等。在單個表格行上工作的點擊事件?

我的問題是,我可以觸發表中最後一行的click事件,我明顯知道爲什麼,但我找不到有關如何實際動態選擇這些行的信息。

我試圖。每個方法是這樣的:

$('table tr').each(function(){ 
     $('.edit{{server->id}}').on('click', function(){ 
       $(this).attr("contenteditable", "true"); 
       $(this).addClass('form-group'); 
       $('div.editable').addClass('form-control'); 
       $('div.hidbtn').removeAttr('hidden'); 
     }); 
}); 

而且這顯然不工作,因爲在這裏我只是{{server->id}}是指從創建該行一個foreach拍攝的最後{{server->id}}

我怎樣才能把它放在一個方式來選擇每一行,併爲每一個點擊事件?

腳本內的foreach?

我很抱歉,如果這會導致這樣一個愚蠢的問題..

我使用Laravel 5.4的方式。

在此先感謝!

+0

的是每'.edit'你將事件綁定到每個'內部tr'? – debute

+0

你並沒有在這裏發生任何事件,你正在附加事件處理程序。如果你想把click處理程序附加到所有的元素上,那麼只需使用一個普通的類或者基於結構的不同的選擇器來選擇它們。在課程名稱中加入「編號」是非常荒謬的。 – CBroe

+0

客戶不知道做了多少個循環,但他可以計算'tr'。您可以爲PHP中的每一行生成'on('click')'代碼,或者爲了這個目的回顯代碼來構建一個數組或'id'。但是,如另一條評論所述,如果您從不使用類來逐個選擇元素,則可以更改爲通用類'edit'。如果你這樣做,也許最好添加第二個泛型類,以便能夠一次選擇所有元素來綁定處理程序 – Kaddath

回答

0

當您通過每個tr遍歷表並需要將事件綁定到每行內部的元素.edit時,那麼您只需「查找」該元素並將事件綁定到它。

$('table tr').each(function(){ 
    $(this).find('.edit').on('click', function() { 
     ... 
    }); 
}); 
+0

我這樣試過,但它甚至沒有改變我需要改變的值:/ –

+0

你可以像'$(this).find('。edit')。trigger('click'); '$('table tr .edit')。觸發('點擊');'沒有'每個'。你說我關心的是我可以觸發最後一行的click事件,所以也許這是'$('table tr .edit')。last()。trigger('click');' - 也沒有'each '。 – debute

0

嘗試這樣

var id=1; 
$('table tr').each(function(){ 
    $('.edit'+id).on('click', function(){ 
     $(this).attr("contenteditable", "true"); 
     $(this).addClass('form-group'); 
     $('div.editable').addClass('form-control'); 
     $('div.hidbtn').removeAttr('hidden'); 
    }); 
    id+=1; 
}); 

要不然這樣
HTML: -

<td onclick="clickFunctio()"></td> 

jQuery的: -

function clickFunctio() { 
     $(this).attr("contenteditable", "true"); 
     $(this).addClass('form-group'); 
     $('div.editable').addClass('form-control'); 
     $('div.hidbtn').removeAttr('hidden'); 
    } 
+0

我認爲你應該刪除綁定函數的增量,它應該在'each' – Kaddath

+0

如果會有像'1,2,4,5'這樣的ID,那麼第五個元素將不會綁定,因爲ID 3缺少,那麼'each'將只運行4次。 – debute

相關問題