我尝试禁用div中的所有链接,同时显示一个表单以强制与表单进行交互。全部,但属于表单的保存和取消按钮。在这里阅读了相关帖子一段时间后,我认为它可以使用此代码。但不知何故只有Save-Button才能工作,即使没有解除绑定。我无法弄清楚这是多么合理,所以我想我错过了一些重要的东西。是否可以从设置为多个事件的事件监听器解除绑定单个链接?
// set up click event to all links in panel-body
$('.panel-body a').on('click.myDisable', function() { return false; });
// unbind cancel button
$("li#122.tag-edit-cancel-button").off('click.myDisable');
// show form
$("li#122-form").css('display','block');
// hide list entry
$("li#122").hide();
// save button
$("li#122-form .tag-edit-save-button")
.click(function(e) {
e.preventDefault();
$("#edit_tag_122").submit();
$('.panel-body a').off('click.myDisable');
});
// cancel button
$("li#122 .tag-edit-cancel-button")
.click(function(d) {
d.preventDefault();
$("li#122-form").css('display','none');
$("li#122").show();
$('.panel-body a').off('click.myDisable');
});
HTML:
<div class="panel-body">
<ul class='tags tags-class5'>
<li id="114-form" style="display:none;">
<div class="col-md-6">
<form accept-charset="UTF-8" action="/users/1/tags/114" class="edit_tag" data-remote="true" id="edit_tag_114" method="post">
<div style="display:none">
<input name="utf8" type="hidden" value="✓"/>
<input name="_method" type="hidden" value="patch" />
</div>
<input class="tag-edit-input form-control" id="tag_name" name="tag[name]" type="text" value="aslkasdasd" />
</form>
</div>
<div class='col-md-6 tag-button-row'>
<a class="btn btn-primary btn-sm tag-edit-save-button" href="#">Save</a>
<a class="btn btn-danger btn-sm tag-edit-cancel-button" href="#">Cancel</a>
</div>
</li>
<li id="114">
<div class='col-md-6 textoverflow left list_1'> sometext </div>
<div class='col-md-6 tag-button-row'>
<a class="btn btn-warning btn-sm tag-edit-button" data-remote="true" href="/users/1/tags/114/edit">Edit</a>
<a class="btn btn-danger btn-sm" data-confirm="Delete Tag (it will be deleted from all associated Vocabs?" data-method="delete" data-remote="true" href="/users/1/tags/114" rel="nofollow">Delete</a>
</div>
</li>
</ul>
</div>
如果需要更多信息,请告诉我们。 THX!