2015-12-10 7 views
0

Я хочу добавить Jack в конце строки только один раз. Как?Как добавить что-то только один раз с помощью jQuery?

$('button').click(function() { 
 
    $('div').append('Jack'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div>My name is: </div> 
 
<button>click</button>

Другими словами, когда я нажимаю на эту кнопку, если Джек добавляется, то ничего не происходит, но если Джек не существует, то он присоединяет.

ответ

1
$('button').click(function() { 
    $('div').html('Jack'); 
}); 

Это заменит все, что находится внутри DIV

+0

В этом случае вывод будет выглядеть следующим образом: ''

Jack
. Но я хочу это: '
My name is: Jack
' – stack

+0

изменить «Джек» на «Меня зовут: Jack» – Bindrid

+1

или после строки рассуждений JCD, $ ('button'). One ('click', function() { $ (' div '). append (' Jack '); }), который запускается только один раз, а затем автоматически удаляет обработчик событий. – Bindrid

1

Используйте JQuery в on() и off() методы легко контролировать, когда слушатели событий активны.

Чтобы добавить OnClick слушателя:

$("button").on("click", function(){}); 

Для удаления слушателя:

$("button").off("click"); 

В вашем случае, вы можете поместить вызов в off() функцию внутри от обратного вызова on() функции. Результатом является анонимная функция, которая запускается один раз, одним щелчком мыши, а затем удаляется сама.

$("button").on("click", function(){ 
    $("div").append("Jack"); 
    $(this).off("click"); 
} 

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

$("button").one("click", function(){ 
    $("div").append("Jack"); 
} 
1

$('button').click(function() { 
 
    var text = $('div').text(); 
 
    if(!/Jack/.test(text)){ 
 
    $('div').append('Jack'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div>My name is: </div> 
 
<button>click</button>

Смежные вопросы