jQuery .not()和:not()不起作用

该死的

我将有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章