【问题标题】:Using Jeditable and activating on click使用 Jeditable 并点击激活
【发布时间】:2009-10-19 03:22:05
【问题描述】:

我发现this 几乎正是我想要做的。我正在使用Jeditable 我可以使用默认设置。我还能够让上面论坛中的代码正常工作。我相信我的问题是因为我使用的是表格,所以我需要其他东西来选择前一个元素。

这是我的 HTML

   <table>
    <tr>
        <td width="5%"><input  class="cat_checkbox" type="checkbox" name='delete_cat[]' value='<?php echo("$cat_data[cat_id]");?>' /></td>
        <td width="90%" class="edit_cat_title" id='unique_id'>Category</td>
        <td width="5%"><a href="#" class="edit_cat_title_trigger"><img src="images/edit.gif" border="0"></a></td>
     </tr>
</table>

这是我的 JQuery:

 //modify title content on the fly  
    $('.edit_cat_title').editable('action.php', { 
         name : 'cat_title',  
         indicator : 'Saving...',
         submit    : 'OK',
         cancel    : 'Cancel',
         tooltip:'click to edit',
         event  : 'edit'
      });

//trigger with the click of the edit image
    $(".edit_cat_title_trigger").bind("click", function() {
    $(this).prev().trigger("edit_cat_title");
});

我知道我可能应该能够弄清楚,我知道我所要做的就是将$(this).prev().trigger("edit_cat_title"); 更改为正确的东西,但我对 Jquery 仍然很陌生。

【问题讨论】:

  • 什么?说真的,这里的问题是什么?

标签: javascript jquery jeditable


【解决方案1】:

与其依赖 dom 结构来触发编辑事件,您可以考虑在两者上设置一个 rel 标签,以便更有限地对它们进行分组。这将使您的代码与您的标记更加分离。那么选择器就是$('.edit_cat_title').filter('[rel='+$(this).attr('rel')+']')

【讨论】:

  • 谢谢亚历克斯,我不得不承认只有一半是有道理的。 :)
【解决方案2】:

我想通了,我只需要获取.edit_cat_title 的先前实例,我使用这个 jquery 来询问任何想知道的人。

    $(".edit_cat_title_trigger").bind("click", function() {
    $(this).parent().prev('.edit_cat_title').trigger("edit");
});

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多