如何禁用动态创建的<li>元素?</li>

时间:2014-01-15 15:05:42

标签: javascript jquery

我创建了包含三个<ul>的{​​{1}}。我想在某些条件下禁用其中一个<li>并在其他<li>中插入一些文本但是失败了。

<li>

code

我想B1禁用。我试过以下代码:

var d = document.createElement('div'); d.className = "dataTables_paginate paging_bootstrap pagination"; var UL = document.createElement('ul'); var L1 = document.createElement('li'); L1.className = 'prev'; var A1 = document.createElement('a'); A1.appendChild(document.createTextNode('← Previous')); A1.id = 'B1'; L1.appendChild(A1); UL.appendChild(L1); var L3 = document.createElement('li'); L3.className = 'active'; var A3 = document.createElement('a'); A3.appendChild(document.createTextNode('1')); L3.appendChild(A3); UL.appendChild(L3); d.appendChild(UL); var L2 = document.createElement('li'); L2.className = 'next'; var A2 = document.createElement('a'); A2.appendChild(document.createTextNode('Next →')); L2.appendChild(A2); A2.id = 'B2'; UL.appendChild(L2); var root = document.getElementById('rose'); root.appendChild(d);

script

2 个答案:

答案 0 :(得分:4)

尝试使用.off()

$('#B1').off("click");

供参考:

只有表单输入元素具有要禁用的属性,无论是textselect checkbox buttons等类型。

答案 1 :(得分:2)

虽然li元素没有禁用状态,但您可以模拟所需的行为:

$('#B1').css("color","gray").css("text-decoration","none");

这会使其显示为已禁用(不会加下划线并显示为灰色)。

如果您需要禁用附加到其上的事件侦听器,则必须使用off()

$('#B1').off("click");

此外,如果元素是链接,则必须以下列方式阻止它被点击:

$('#B1').click(function() {
    $(this).preventDefault();  // prevent the default action
    $(this).stopPropagation(); // prevent event from bubbling up
    return false;              // just to be sure
}