我正在尝试禁用Div标签的所有元素。我在输入类型上取得了成功。但无法禁用链接。 我也试过了this,但它没有用。 这是我尝试过的代码(但它只适用于输入):
$('#EditorRows *').attr('disabled', true);
我知道对输入类型禁用但我希望为链接实现这种类型的机制。
第一部分代码:
<div id="Part2">
<div id="EditorRows">
<%= Html.ActionLink("Add another...", "Add", null, new { id = "addItem" }) %>
<%Html.RenderPartial("_InsertServices", Model);%>
</div>
<div id="DontAppend">
<input type="button" id="btnEdit" value="Edit" hidden="hidden"/>
<input type="button" id="btnDone" value="Done" />
</div>
</div>
第二部分视图
<div class="EditorRow">
<% using (Html.BeginCollectionItem("services"))
{ %>
<table id="table1">
<tr><td>
NOS:</td><td>
<%:Html.DropDownListFor(model=>model.Id,(SelectList)ViewData["crmServiceType"] as SelectList,"---")%>
</td>
<td>
Comment:</td><td>
<%=Html.TextBoxFor(model => model.Comment, new { size = "20" })%></td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
</tr>
</table>
<% } %>
</div>
脚本:
$("#addItem").click(function () {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#EditorRows").append(html); }
});
return false;
});
$("a.deleteRow").live("click", function () {
$(this).parents("div.EditorRow:first").remove();
return false;
});
$('#btnDone').click(function () {
$('#EditorRows *').attr('disabled', true);
}
$('#btnEdit').click(function () {
$('#EditorRows *').attr('disabled', false);
}
答案 0 :(得分:3)
要禁用链接,请使用此
$('div a').unbind('click');
你的情况:
$('#btnDone').click(function () {
var $rows = $('#EditorRows');
$rows.find('input, select, textarea').attr('disabled', true);
$rows.find('a').unbind('click');
}
答案 1 :(得分:1)
试试这个
$('#EditorRows').find('a').each(function(){
$(this).replaceWith($(this).text());
});
<强>更新强>
要禁用:
$('#EditorRows').find('a').bind('click', false);
启用:
$('#EditorRows').find('a').unbind('click', false);
答案 2 :(得分:0)
$('div').find(':input').prop('disabled',true);//this line will this able all inputs including buttons.
$('div').find('a').each(function(){
$(this).removeAttr('href');
$(this).unbind('click');
});//this will take care of the links
我认为这会解决问题
答案 3 :(得分:0)
使用off方法的jquery。
$('#Yourdiv a').off('click');
$('#yourDiv').find('input').attr('disabled',true);
或者简单只是在点击锚点时返回false。
$('#Yourdiv a').on('click',function(e)
{
return false; // or e.preventDefault();
});
答案 4 :(得分:0)
它仅适用于输入,因为它们具有disable
属性。要禁用链接,请尝试
如果您只想删除链接重定向。
$("#youdivname").find('a').removeAttr('href')
这将再次激活它:
$("#yourdivname").find('a').attr('href','link')
其中link
是重定向。
答案 5 :(得分:0)
首先想到的解决方案,但它并没有假装优雅 http://jsbin.com/icijox/4/edit