Click-To-Copy при выпуске сворачиваемого списка определений - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть «свернутый» список определений.

Для каждого элемента списка я добавил кнопку «Нажми и скопируй» к определению, чтобы скопировать текст абзаца каждого термина.

Проблема в том, что каждый раз, когда я нажимаю кнопку 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>

Что можно сделать, чтобы нажатие на кнопку "щелкнуть по копии" не активировало функцию свертывания / развертывания элемента определения термина?

(на всякий случай, будь мил со мной, если я что-то делаю неправильно ... Я сделал это опытным путем)

...