我将有一个link
“编辑”,您可以在其中单击以编辑一些字段。现在,单击链接后,应该会禁用要编辑的链接。我试图通过添加一个类来实现这一点editing
。因此,如果.not('.editing')
运行其余代码...但是我可以单击两次
我做错了什么?感谢您的观看和帮助->小提琴http://jsfiddle.net/s1v8n2Ld/
$('.edit-product').not('.editing').on('click', function(e){
e.preventDefault();
$(this).addClass("editing")
var $table = $(this).closest('table');
$table.find('.editable').each(function(i){
var content = $(this).html().trim();
$(this).wrapInner('<input type="text" name="" placeholder="'+content+'">');
});
});
$('.edit-product2:not(.editing)').on('click', function(e){
e.preventDefault();
$(this).addClass("editing")
var $table = $(this).closest('table');
$table.find('.editable').addClass('xxxx');
$table.find('.editable').each(function(i){
var content = $(this).html().trim();
$(this).wrapInner('<input type="text" name="" placeholder="'+content+'">');
});
});
<table border="1" style="border-collapse:collapse;">
<tr>
<td>
ID
</td>
<td>
18
</td>
<td rowspan="4">
<a href="/app_dev.php/edit/ 18" class="edit-product">Edit</a>
</td>
</tr>
<tr>
<td>
Name
</td>
<td class="editable">
New product name!
</td>
</tr>
<tr>
<td>
Price
</td>
<td class="editable">
19.99
</td>
</tr>
<tr>
<td>
Description
</td>
<td class="editable">
Lorem ipsum dolor
</td>
</tr>
</table>
<table border="1" style="border-collapse:collapse;">
<tr>
<td>
ID
</td>
<td>
18
</td>
<td rowspan="4">
<a href="/app_dev.php/edit/ 18" class="edit-product2">Edit</a>
</td>
</tr>
<tr>
<td>
Name
</td>
<td class="editable">
New product name!
</td>
</tr>
<tr>
<td>
Price
</td>
<td class="editable">
19.99
</td>
</tr>
<tr>
<td>
Description
</td>
<td class="editable">
Lorem ipsum dolor
</td>
</tr>
</table>
您需要事件委托,因为在加载dom之后添加了.editing类
$(document).on('click','.edit-product:not(.editing)'
还是像@Karl-AndréGagnon在评论中指出的那样
检查元素是否在处理程序中进行了类编辑。
$('.edit-product').on('click', function(e){
if(!$(this).hasClass('editing')){
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句