Jquery 防止单击一次后单击,直到用户再次单击另一个按钮
我制作了一个contenteditable div和一个按钮'trend',当用户单击按钮时,它将更改光标以提供帮助。每当用户右键单击或双击contenteditable div中的任何文本,该文本将显示在另一个div中时,只有在单击trend按钮后,才会发生这种情况。 当用户选择文本时,他必须再次单击趋势按钮以选择另一个文本。基本上一次只有一个文本。但在我双击多次的代码中,它是在单击趋势按钮一次后选择多个文本。 我必须在点击趋势按钮后一次选择一个文本,因为选择另一个文本用户必须再次点击趋势按钮,然后双击文本 以下是我的代码,以便更好地理解Jquery 防止单击一次后单击,直到用户再次单击另一个按钮,jquery,Jquery,我制作了一个contenteditable div和一个按钮'trend',当用户单击按钮时,它将更改光标以提供帮助。每当用户右键单击或双击contenteditable div中的任何文本,该文本将显示在另一个div中时,只有在单击trend按钮后,才会发生这种情况。 当用户选择文本时,他必须再次单击趋势按钮以选择另一个文本。基本上一次只有一个文本。但在我双击多次的代码中,它是在单击趋势按钮一次后选择多个文本。 我必须在点击趋势按钮后一次选择一个文本,因为选择另一个文本用户必须再次点击趋势按钮
$(“#弹出#u按钮”)。在(“单击”上,函数(e){
e、 预防默认值();
$(“#textarea”).css(“光标”、“帮助”);
$(“#textarea”).mousedown(函数(e){
如果(e.which==3){
e、 预防默认值();
document.getElementById(“textarea”).addEventListener(“contextmenu”,函数(e){
e、 预防默认值();
},假);
var text=getSelectionText(e);
//console.log(文本);
$('.show_popupmenu').css('display','block');
$('.show_popupmenu').css('left',e.pageX);//jquery如下:
<script type="text/javascript">
$('#popup_button').on("click", function(e){
$("#popup_button").attr('data-clicked',true);
e.preventDefault();
$("#textarea").css("cursor", "help");
$("#textarea").mousedown(function(e){
if (e.which === 3){
e.preventDefault();
document.getElementById("textarea").addEventListener("contextmenu", function (e) {
e.preventDefault();
}, false);
var text = getSelectionText(e);
//console.log(text);
$('.show_popupmenu').css('display', 'block');
$('.show_popupmenu').css('left',e.pageX); // <<< use pageX and pageY
$('.show_popupmenu').css('top',e.pageY);
$('.show_popupmenu').css('display','inline');
$(".show_popupmenu").css("position", "absolute");
}
if (e.which === 1) {
$('.show_popupmenu').css('display', 'none');
}
});
$("#textarea").dblclick(function(e){
e.preventDefault();
$('#textarea').css('cursor', 'auto');
$('.show_popupmenu').css('display', 'none');
var text = getSelectionText();
//console.log(text);
if(text !== ''){
if($("#popup_button").attr('data-clicked')=='true'){
//console.log(text);
$(".selected_trend").append('<div class="trends" id="trend'+text+'" data-text="'+text+'" style="width:auto; height:auto; display:inline-block;">'+text+'<p class="removetrend" data-id="'+text+'" style="display:inline-block; cursor:pointer;">×</p></div>');
$("#popup_button").attr('data-clicked',false);
}
}
});
});
$(document).on('click','.removetrend', function(e){
e.preventDefault();
$(this).parent().remove();
});
function getSelectionText(){
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
</script>
$(“#弹出按钮”)。在(“单击”上,函数(e){
$(“#弹出按钮”).attr('点击数据',为真);
e、 预防默认值();
$(“#textarea”).css(“光标”、“帮助”);
$(“#textarea”).mousedown(函数(e){
如果(e.which==3){
e、 预防默认值();
document.getElementById(“textarea”).addEventListener(“contextmenu”,函数(e){
e、 预防默认值();
},假);
var text=getSelectionText(e);
//console.log(文本);
$('.show_popupmenu').css('display','block');
$('.show_popupmenu').css('left',e.pageX);//但新文本将附加在较旧的选定文本之后,而不是在每次单击“选择趋势”按钮时分配dblclick事件。这会导致在多次单击按钮后出现不需要的多个操作。移动$(“#textarea”)。dblclick(函数(e){…}
从$(“#弹出按钮”)。在(“单击”上,函数(e){…}
函数转换为一个onload函数($(函数(){…}
)。您可以通过使用一个标记来激活/取消激活事件,每次单击“选择趋势”按钮时都可以更改该标记。