这是我在diabing一个超链接的最后一个问题。超链接确实禁用但问题是禁用具有相同类的所有超链接。所有超链接都具有相同的类,如果没有,则它们将不起作用。但我只希望禁用顶部(在html中)的超链接,而不是禁用添加的行(jquery代码)中的超链接。如何区分2以便不是所有超链接都被禁用?
以下是禁用超链接的代码:
$(".showGrid").unbind('click').click(function (event) {
event.preventDefault();
return false;
})
下面是完整html中的超链接(我希望禁用此超链接):
<table id="optionAndAnswer" class="optionAndAnswer">
<tr>
<th colspan="2">
Option and Answer
</th>
</tr>
<tr class="option">
<td>Option Type:</td>
<td>
<div class="box">
<input type="text" name="gridValues" class="gridTxt maxRow" readonly="readonly" />
<a href="#" class="showGrid">[Open Grid]</a>
</div>
</td>
</tr>
</table>
下面是jquery代码中的超链接(不要禁用此超链接):
function insertQuestion(form) {
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $options = $("<td class='option'></td>");
$('.gridTxt', context).each( function() {
var $this = $(this);
var $optionsText = $("<input type='text' class='gridTxtRow maxRow' readonly='readonly' /><span href='#' class='showGrid'>[Open Grid]</span>").attr('name',$this.attr('name'))
.attr('value',$this.val())
$options.append($optionsText);
});
$tr.append($options);
}
答案 0 :(得分:0)
您可以使用$(“#new_id”)添加ID并禁用吗?
答案 1 :(得分:0)
你可以用jQuery选择器做很多事情......
$(".box a")
将使用'box'类选择所有作为元素后代的锚标记
您可以在锚标记中添加ID,并以此方式抓取它。这是最有效的..
<a id="openGridLink" href="#">[Open Grid]</a>
$("#openGridLink")
会选择(注意Ids在页面上必须是唯一的)
在这里查看更多选择器选项
答案 2 :(得分:0)
如果您只是担心确保只有静态HTML获取click
处理程序而不是动态添加的处理程序,那么只需添加click
处理程序 添加新链接。
// jQuery 1.7.x
$(".showGrid").off('click').on('click', function (event) {
event.preventDefault();
// return false; <-- you PROBABLY don't need this anymore.
});
// add the new links here
如果你不能这样做,那么按位置选择。
$("tr.option:first-child .showGrid").off('click').on('click', function (event) {
event.preventDefault();
});
如果您也无法做到这一点,那么我建议您在动态链接中添加新课程。
var $optionsText =
$("<input type='text' class='gridTxtRow maxRow' readonly='readonly' /><span href='#' class='showGrid dynamic'>[Open Grid]</span>")
.attr('name', $this.attr('name'))
.attr('value', $this.val());
// then modify your event hook like this:
$(".showGrid:not(.dynamic)").off("click").on("click", function (event) {
event.preventDefault();
});
在ID上使用类不仅更具语义性,而且在自动生成多个ID时,您不必担心名称冲突。