2014-08-29 2 views
2

My demo есть здесь.отключить элемент в jQuery

$(document).ready(function() { 
    $('.abc').click(function() { 
     $('#test').after('<textarea cols="125" rows="2" id="pReply" style="background-color:red;"></textarea>') 
    }); 
}); 

Когда я нажимаю на текст «ABC», он добавит текстовое поле. После добавления я хочу отключить текст «ABC». Это означает, что он не должен добавлять текстовые поля более одного.

+3

Помните, что при использовании JSFiddle вы * должны * включать код вашей скрипки (поскольку @Jeff B был дозволен для редактирования для вас), так как сообщение об ошибке сообщило вам перед отправкой этого вопроса. – admdrew

+1

Спасибо. Я получил сообщение об ошибке, но не мог понять. – user3894236

+0

Нет проблем. Добро пожаловать на сайт! – admdrew

ответ

10

Bind событие с помощью .one(). Когда событие запускается в первый раз, jQuery автоматически отвяжет его от элемента для вас.

$(document).ready(function() { 
    $('.abc').one('click', function() { 
     $('#test').after('<textarea cols="125" rows="2" id="pReply" style="background-color:red;"></textarea>') 
    }); 
}); 

Ссылка:.one()

DEMO

+1

Большое вам спасибо. Он хорошо работал – user3894236

+1

@ user3894236 Нет проблем. Рад, что это сработало для вас. Удачи и счастливого кодирования! :) – War10ck

-3

Просто удалите функцию щелчка с JQuery

0

Или вы можете использовать этот тип функции

<script> 
     var isClicked = false; 
     function appendIt(){ 
       if(!isClicked){ 
         //append text area 
       } 
       isClicked = true; 
     } 
</script> 

<h1 onclick="appendIt()"> chabadabada </h1> 
1

Вы можете использовать UNBIND функции, в которой вы бы отвязать нажмите после завершения вызова

JS код

$('.abc').click(function() 
    { 
     $('#test').after('<textarea cols="125" rows="2" id="pReply" style="background-color:red;"></textarea>'); 
     $(this).unbind('click');     
     } 

Working Fiddle

Подробнее о unbind функции

0

U можно связать с помощью one или с помощью $(this).off(event) после запуска события. так:

$(document).ready(function(){ 
    $('.abc').click(function(event){ 
     $('#test').after('<textarea cols="125" rows="2" id="pReply" style="background-color:red;"></textarea>'); 
     $(this).off(event); 
    }); 
}); 

или:

$(document).ready(function(){ 
    $('.abc').one('click',function(){ 
     $('#test').after('<textarea cols="125" rows="2" id="pReply" style="background-color:red;"></textarea>'); 
    }); 
}); 

Надеется, что это полезно!