2016-05-04 2 views
0

У меня есть сценарий, работающий точно так, как мне нужно, только сейчас я не могу его реплицировать на странице - jquery принимает текстовые поля и редактирует их на основе нажатых кнопок , однако мне нужно, чтобы каждый текстовый ящик имел собственный набор кнопок. Вот мой код:JQuery привязка событий к нескольким экземплярам на странице

HTML код:

<textarea style="width:500px; height: 150px;" id="text">This is some text</textarea> 
<br /> 
<input type="button" value="Click Me" id="button" /> 
<input type="button" value="Click Me 2" id="button2" /> 

<br /><br /> 

<textarea style="width:500px; height: 150px;" id="text">This is some text</textarea> 
<br /> 
<input type="button" value="Click Me" id="button" /> 
<input type="button" value="Click Me 2" id="button2" /> 

JavaScript код:

$(function() { 
$('#button').on('click', function() { 
    var text = $('#text'); 
    text.val(text.val() + "\n\nafter clicking");  
}); 
$('#button2').on('click', function() { 
    var text = $('#text'); 
    text.val(text.val() + "\n\nafter clicking 2");  
}); }); 

JS Fiddle:

https://jsfiddle.net/42ssmu0t/

Спасибо, что помогли мне понять это!

+0

ID должен быть уникальным, проверьте HTML код – pumpkinzzz

+0

Но тогда мне нужно будет повторить функцию JS для каждого текстового поля? – user5302198

+0

nop, просто используйте ** класс ** селектор для этого. Например, добавьте класс «my-button» для каждого входа, затем в jquery можно сделать '$ ('. My-button'). On ('click', function() {' – pumpkinzzz

ответ

0

Используйте это:

$(function() { 
     $('*#button').on('click', function() { 
      var text = $('#text'); 
      text.val(text.val() + "\n\nafter clicking"); 
     }); 
     $('*#button2').on('click', function() { 
      var text = $('#text'); 
      text.val(text.val() + "\n\nafter clicking 2"); 
     }); 
    }); 
0

Я обновил код на скрипку

Updated Fiddle

здесь обновленный код:

$(function() { 
$('*#button').on('click', function() { 
    var text = $(this).prevAll('#text').eq(0); 
    text.val(text.val() + "\n\nafter clicking");  
}); 
$('*#button2').on('click', function() { 
    var text = $(this).prevAll('#text').eq(0); 
    text.val(text.val() + "\n\nafter clicking 2");  
}); 
}); 
+0

Привет, огромное спасибо - я скопировал вашу скрипту JS на мою и добавил дополнительную функцию, и она не работала - не могли бы вы взглянуть на мою обновленную скрипку? и посмотрим, где я ошибся? Вот один из них, где я добавил свой код в мой: https://jsfiddle.net/yLotfgfh/ – user5302198

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