2016-05-26 31 views
0

重複我行javascript函數我有一個按鈕 -停止的onclick從表

<a onclick="function edit_row()"></a>

當我點擊它調用函數edit_row並在其中我可以編輯一個表打開一個新行的按鈕。

問題是,我每次點擊按鈕,它會打開一個新行。我想阻止它。我希望它只是打開一行保存行ID。

Script代碼:

function edit_row(process_id, row_id, item_id, quantity, price, total) { 
    $(".edit_row").remove(); 
    $(".add_row").remove(); 
    var row = '<tr class="bg-success"> < 
     td > <?php echo $lang['e_edit_items'];?>: < /td> < 
     td > '+ item_id +' < /td>'; 
    row += '<td><?php echo $lang[' 
    quantity '];?></td>'; 
    row += '<td><input type="text" class="form-control" id="quant1" value="' + quantity + '"></td><td><?php echo $lang[' 
    The - price '];?></td>'; 
    row += '<td><input type="text" id="price1" class="form-control" value="' + price + '"></td>'; 
    row += '<td><a class="btn btn-success btn-block"onclick="save_edit(' + process_id + ',' + row_id + ',' + item_id + ',' + quantity + ',' + total + ')"><?php echo $lang[' 
    Save_edit '];?></a></td></tr>'; 
    $("#" + row_id).after(row); 
    return false; 
} 
+0

所以有這個功能會禁用它本身,或者刪除按鈕,或者其他什麼... –

+0

最簡單的方法是添加一個像rowExists這樣的標誌,在添加一個新行並在函數中設置它如果(rowExists)返回並且什麼也不做。當你希望函數能夠再次工作時,例如編輯完成時,將其重新設置爲false – HotTowelie

+0

您能向我們展示更多代碼嗎?你如何將參數傳遞給函數?我在你的''看不到它。 – IMTheNachoMan

回答

0

您可以點擊刪除這樣的例子可點擊元素的事件處理程序。

$("#button1").click(function(){ 
 
    $("table").append("<tr><td>New-1</td><td>New-2</td><td>New-3</td></tr>"); 
 
    $(this).unbind("click"); 
 
}); 
 
table, tr, td { 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#" id="button1">Add row</a> 
 
<table> 
 
    <tr> 
 
     <td>Column-1</td> 
 
     <td>Column-2</td> 
 
     <td>Column-3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Column-1</td> 
 
     <td>Column-2</td> 
 
     <td>Column-3</td> 
 
    </tr> 
 
</table>

但有許多方法來完成這項工作。例如,您可以將disabled屬性添加到可點擊元素,如果它是button,則可以將data-*屬性或class添加到元素或使用變量來執行此操作。看其他方式的例子jsfiddle