У меня есть «свернутый» список определений.
Для каждого элемента списка я добавил кнопку «Нажми и скопируй» к определению, чтобы скопировать текст абзаца каждого термина.
Проблема в том, что каждый раз, когда я нажимаю кнопку Click-To-Copy, она автоматически расширяет (или сворачивает) абзац, и я не хочу, чтобы это делалось.Я хочу, чтобы абзац был расширен (или свернут) только тогда, когда я нажимаю на текст термина определения, но не когда я нажимаю кнопку внутри элемента термина определения.
/* Collapsible Definition List usando jQuery */
(function( $ ){
$.fn.collapsible_definition_list = function() {
return this.each(function(){
$(this).find('dd').hide().end().find('dt').addClass("more").bind({
click: function(){
$(this).toggleClass("more less");
$(this).nextAll().each(function(){
if($(this).is('dt')){
return false;
}
$(this).slideToggle();
});
}
});
});
};
})( jQuery );
$(document).ready(function(){
$('.collapsible').collapsible_definition_list();
});
/* Here is the code for the click to copy: */
function copyToClipboard(element) {
var $temp = $("<textarea>");
var brRegex = /<br\s*[\/]?>/gi;
$("body").append($temp);
$temp.val($(element).html().replace(brRegex, "\r\n")).select();
document.execCommand("copy");
$temp.remove();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<dl class="collapsible">
<dt><button onclick="copyToClipboard('#p1')">Click to Copy</button> Item 1</dt>
<dd id="p1">Test text 1.<br>This is paragraph #1</dd>
<dt><button onclick="copyToClipboard('#p2')">Click to Copy</button> Item 2</dt>
<dd id="p2">Test text 2.<br>This is paragraph #2</dd>
<dt><button onclick="copyToClipboard('#p3')">Click to Copy</button> Item 3</dt>
<dd id="p3">Test text 3.<br>This is paragraph #3</dd>
</dl>
Что можно сделать, чтобы нажатие на кнопку "щелкнуть по копии" не активировало функцию свертывания / развертывания элемента определения термина?
(на всякий случай, будь мил со мной, если я что-то делаю неправильно ... Я сделал это опытным путем)