วิธีแยกแยะระหว่างการคลิกเมาส์ซ้ายและขวาด้วย jQuery


574

คุณจะได้รับปุ่มเมาส์ที่ถูกคลิกโดยใช้ jQuery ได้อย่างไร?

$('div').bind('click', function(){
    alert('clicked');
});

สิ่งนี้เกิดขึ้นจากการคลิกขวาและซ้ายการจับเมาส์คลิกขวาเป็นอย่างไร ฉันจะมีความสุขถ้ามีสิ่งที่ชอบด้านล่าง:

$('div').bind('rightclick', function(){ 
    alert('right mouse button is pressed');
});

คำตอบ:


900

ในฐานะของ jQuery เวอร์ชัน 1.1.3 จะevent.whichทำให้ปกติevent.keyCodeและevent.charCodeคุณไม่ต้องกังวลเกี่ยวกับปัญหาความเข้ากันได้ของเบราว์เซอร์ เอกสารเกี่ยวกับevent.which

event.which จะให้ 1, 2 หรือ 3 สำหรับปุ่มซ้าย, กลางและขวาของเมาส์ตามลำดับดังนี้:

$('#element').mousedown(function(event) {
    switch (event.which) {
        case 1:
            alert('Left Mouse button pressed.');
            break;
        case 2:
            alert('Middle Mouse button pressed.');
            break;
        case 3:
            alert('Right Mouse button pressed.');
            break;
        default:
            alert('You have a strange Mouse!');
    }
});

4
@Jeff Hines - ฉันพยายามตรวจจับคลิกขวาใน Chrome และการใช้งานที่แสดงในที่นี้ดูเหมือนว่าจะทำงานได้ดี แต่ฉันก็รู้ว่าเป็นเพราะการแจ้งเตือน () ทำให้เมนูบริบทไม่ปรากฏ :( boo
jinglesthula

15
ให้เลื่อนลงและทำให้แน่ใจว่าได้อ่าน @ JeffHines ของคำตอบ โดยทั่วไป jQuery มี built-in นี้เป็นเหตุการณ์ 'contextmenu'
jpadvo

8
@jpadvo jQuery ไม่ได้สร้างเป็น "contextmenu" contextmenuเป็นของเบราว์เซอร์ ใน JavaScript ท้องถิ่นคุณสามารถแนบไปกับoncontextmenuกิจกรรม
Naftali aka Neal

6
ie8: ไม่สามารถรับค่าของคุณสมบัติ 'ซึ่ง': วัตถุนั้นเป็นโมฆะหรือไม่ได้กำหนด
Simon

2
ฉันสามารถป้องกันไม่ให้เมนูบริบทขึ้นมาหลังจากเหตุการณ์ถูกเปิดใช้งานได้หรือไม่
kmoney12

251

แก้ไข : ฉันเปลี่ยนให้ใช้งานได้กับองค์ประกอบที่เพิ่มแบบไดนามิกโดยใช้.on()ใน jQuery 1.7 ขึ้นไป:

$(document).on("contextmenu", ".element", function(e){
   alert('Context Menu event has fired!');
   return false;
});

การสาธิต: jsfiddle.net/Kn9s7/5

[เริ่มต้นโพสต์ต้นฉบับ] นี่คือสิ่งที่ใช้ได้กับฉัน:

$('.element').bind("contextmenu",function(e){
   alert('Context Menu event has fired!');
   return false;
}); 

ในกรณีที่คุณมีหลายวิธี ^^

แก้ไข : ทิมลงนำขึ้นจุดที่ดีว่ามันไม่เสมอไปได้right-clickที่ไฟcontextmenuเหตุการณ์ แต่ยังเมื่อคีย์เมนูบริบทถูกกด (ซึ่งเป็น arguably ทดแทนสำหรับright-click)


28
นี่ควรเป็นคำตอบที่ยอมรับได้ กิจกรรมนี้ใช้งานได้ในเบราว์เซอร์และทริกเกอร์ที่เกี่ยวข้องในการคลิกทั้งหมด (เลื่อนเมาส์ลง + เลื่อนเมาส์ขึ้นไปใกล้ ๆ )
Nick Retallack

3
นี่เป็นทางออกเดียวที่ทำงานสำหรับฉันเกี่ยวกับการคลิกขวาที่ <textarea>
styler1972

17
การคลิกขวาไม่ใช่วิธีเดียวที่จะทริกเกอร์เมนูบริบท
Tim Down

3
ฉันคิดว่ามันเป็นวิธีที่ไม่ถูกต้องเพราะcontextmenuเหตุการณ์การยิงไม่ได้หมายความว่าคลิกเมาส์ปุ่มขวาเสมอ วิธีการที่ถูกต้องคือรับข้อมูลปุ่มจากเหตุการณ์เมาส์ ( clickในกรณีนี้)
ทิมลง

1
เฮ้! ขอบคุณนี้ดูดี แต่ฉันไม่สามารถผูกองค์ประกอบเช่นแถวของตารางหรือแม้แต่เนื้อหาได้ มันทำงานได้กับ $ (หน้าต่าง) Im ใช้ Backbone.js การเติม #main พื้นที่ที่มีเนื้อหาใหม่ ฯลฯ
แฮร์รี่

84

คุณสามารถบอกได้อย่างง่ายดายว่ากดปุ่มเมาส์ใดโดยการตรวจสอบwhichคุณสมบัติของวัตถุเหตุการณ์ในเหตุการณ์เมาส์:

/*
  1 = Left   mouse button
  2 = Centre mouse button
  3 = Right  mouse button
*/

$([selector]).mousedown(function(e) {
    if (e.which === 3) {
        /* Right mouse button was clicked! */
    }
});

3
ปลั๊กอิน jQuery ที่ลิงก์ด้านบนใช้e.button==2แทน
ceejayoz

6
อ๋อ การใช้event.buttonข้ามเบราว์เซอร์เป็นปัญหามากกว่าที่จะevent.whichเป็นเพราะตัวเลขที่ใช้สำหรับปุ่มevent.buttonต่างกันไป ดูที่บทความนี้ตั้งแต่เดือนมกราคม 2009 - unixpapa.com/js/mouse.html
Russ Cam

1
นี่จะเป็นการดีกว่าถ้าคุณmouseupจะยืนยันคนที่คลิกไอเท็มอย่างแท้จริง? มีหลายครั้งที่ฉันบังเอิญคลิกบางอย่างฉันสามารถป้องกันการคลิกโดยกดปุ่มเม้าส์ค้างไว้แล้วลากไปด้านนอกองค์ประกอบ
Chris Marisic

1
@ChrisMarisic mouseupอาจเป็นเหตุการณ์ที่ดีกว่านี่เป็นเพียงตัวอย่างของการใช้event.whichสำหรับการคลิกปุ่มเมาส์
Russ Cam

39

คุณยังสามารถbindไปcontextmenuและreturn false:

$('selector').bind('contextmenu', function(e){
    e.preventDefault();
    //code
    return false;
});

การสาธิต: http://jsfiddle.net/maniator/WS9S2/

หรือคุณสามารถสร้างปลั๊กอินด่วนที่ทำได้เหมือนกัน:

(function( $ ) {
  $.fn.rightClick = function(method) {

    $(this).bind('contextmenu rightclick', function(e){
        e.preventDefault();
        method();
        return false;
    });

  };
})( jQuery );

การสาธิต: http://jsfiddle.net/maniator/WS9S2/2/


ใช้.on(...)jQuery> = 1.7:

$(document).on("contextmenu", "selector", function(e){
    e.preventDefault();
    //code
    return false;
});  //does not have to use `document`, it could be any container element.

การสาธิต: http://jsfiddle.net/maniator/WS9S2/283/


1
@ Raynos ใช่ แต่นั่นเป็นวิธีเดียวที่จะจัดการกับเหตุการณ์คลิกขวา หากเมนูบริบทยังคงมีอยู่คุณจะไม่สามารถทำอะไรได้เลยในการคลิกขวา
Naftali aka Neal

1
@ Raynos - มีหลายกรณีที่ประเด็นของคุณไม่ถูกต้องเช่นการสร้างเครื่องมือภายในหรือการเขียนโค้ดบางอย่างเพื่อการใช้งานส่วนตัวของคุณเอง .. ฉันแน่ใจว่ามีอีกมาก
vsync

1
ถ้าคุณจริงอยากให้มันทำหน้าที่เหมือนเป็นหนึ่งในตัวจัดการเหตุการณ์ jQuery (เช่นคลิกเป็นต้น) ที่ควรจะเป็นmethod.call(this, e);แทนmethod();วิธีการที่methodได้รับค่าที่ถูกต้องสำหรับการthisและนอกจากนี้ยังมีวัตถุเหตุการณ์ผ่านไปได้อย่างถูกต้อง
Jeremy T

@ JeremyT ที่เป็นจริง ... คุณสามารถจัดการการโทรกลับในแบบที่คุณต้องการ ^ _ ^
Naftali aka Neal

30

$("#element").live('click', function(e) {
  if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
       alert("Left Button");
    }
    else if(e.button == 2){
       alert("Right Button");
    }
});

อัปเดตสำหรับสถานะปัจจุบันของสิ่งต่าง ๆ :

var $log = $("div.log");
$("div.target").on("mousedown", function() {
  $log.text("Which: " + event.which);
  if (event.which === 1) {
    $(this).removeClass("right middle").addClass("left");
  } else if (event.which === 2) {
    $(this).removeClass("left right").addClass("middle");
  } else if (event.which === 3) {
    $(this).removeClass("left middle").addClass("right");
  }
});
div.target {
  border: 1px solid blue;
  height: 100px;
  width: 100px;
}

div.target.left {
  background-color: #0faf3d;
}

div.target.right {
  background-color: #f093df;
}

div.target.middle {
  background-color: #00afd3;
}

div.log {
  text-align: left;
  color: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="target"></div>
<div class="log"></div>


1
เฉพาะ msie นี้หรือไม่ คือมันพกพาข้ามเบราว์เซอร์อื่น ๆ ?
Taryn East

13
วิธีนี้ไม่จำเป็นในขณะนี้ซึ่งevent.whichได้รับการแนะนำซึ่งกำจัดความเข้ากันได้ข้ามเบราว์เซอร์
โอ๊ก

8
ฉันสงสัยว่าเหตุการณ์ซึ่งขจัดความไม่ลงรอยกันของเบราว์เซอร์ข้ามซึ่งจริง ๆ แล้วเป็นเพียงฉัน
DwB


15

มีจำนวนมากของคำตอบที่ดีมาก แต่ฉันเพียงแค่ต้องการที่จะสัมผัสกับความแตกต่างที่สำคัญระหว่าง IE9 และ IE <9 event.buttonเมื่อใช้

ตามข้อกำหนดของ Microsoft เก่าสำหรับevent.buttonรหัสแตกต่างจากรหัสที่ใช้โดย W3C W3C พิจารณาเพียง 3 กรณี:

  1. คลิกเมาส์ปุ่มซ้าย - event.button === 1
  2. คลิกเมาส์ปุ่มขวา - event.button === 3
  3. คลิกเมาส์ปุ่มกลาง - event.button === 2

ใน Internet Explorer ที่เก่ากว่าอย่างไรก็ตาม Microsoft กำลังพลิกบิตสำหรับปุ่มที่กดและมี 8 กรณี:

  1. ไม่มีการคลิกปุ่ม - event.button === 0หรือ 000
  2. คลิกซ้ายที่ปุ่ม - event.button === 1หรือ 001
  3. คลิกขวาที่ปุ่ม - event.button === 2หรือ 010
  4. คลิกปุ่มซ้ายและขวา - event.button === 3หรือ 011
  5. ปุ่มกลางถูกคลิก - event.button === 4หรือ 100
  6. มีการคลิกปุ่มกลางและซ้าย - event.button === 5หรือ 101
  7. มีการคลิกปุ่มกลางและขวา - event.button === 6หรือ 110
  8. คลิกปุ่มทั้ง 3 ปุ่ม - event.button === 7หรือ 111

แม้จะมีความจริงที่ว่านี่เป็นวิธีการทำงานตามหลักทฤษฏี แต่ไม่มี Internet Explorer รองรับกรณีที่กดสองหรือสามปุ่มพร้อมกัน ฉันกำลังพูดถึงมันเพราะมาตรฐาน W3C ไม่สามารถสนับสนุนสิ่งนี้ได้ในทางทฤษฎี


6
ดังนั้นเมื่อกดปุ่มคุณจะได้รับevent.button === 0ซึ่งไม่มีการคลิกปุ่ม IE ที่ยอดเยี่ยมಠ_ಠ
Sinan

มีให้ใน IE เวอร์ชันต่ำกว่า 9
Konstantin Dinev

หากนักพัฒนาโดยรวมหยุดเลือกที่จะสนับสนุนเช่นคนจะต้องเปลี่ยนจากนั้นนักพัฒนาจะไม่ต้องกังวลเกี่ยวกับการสนับสนุนเช่น
ahnbizcad

8

สำหรับฉันดูเหมือนว่าการปรับเล็กน้อยของคำตอบของ TheVillageIdiot นั้นจะสะอาดกว่า:

$('#element').bind('click', function(e) {
  if (e.button == 2) {
    alert("Right click");
  }
  else {
    alert("Some other click");
  }
}

แก้ไข: JQuery มีแอe.whichททริบิวส่งคืน 1, 2, 3 สำหรับคลิกซ้ายกลางและคลิกขวาตามลำดับ ดังนั้นคุณสามารถใช้if (e.which == 3) { alert("right click"); }

ดูเพิ่มเติม: คำตอบของ"การเรียกเหตุการณ์ onclick โดยใช้การคลิกกลาง"


3

event.which === 1 ทำให้แน่ใจว่าเป็นคลิกซ้าย (เมื่อใช้ jQuery)

แต่คุณควรคิดถึงปุ่มปรับค่า: ctrlcmdshiftalt

หากคุณสนใจเพียงการคลิกซ้ายง่ายๆที่ไม่มีการแก้ไขคุณสามารถทำสิ่งนี้ได้:

var isSimpleClick = function (event) {
  return !(
    event.which !== 1 || // not a left click
    event.metaKey ||     // "open link in new tab" (mac)
    event.ctrlKey ||     // "open link in new tab" (windows/linux)
    event.shiftKey ||    // "open link in new window"
    event.altKey         // "save link as"
  );
};

$('a').on('click', function (event) {
  if (isSimpleClick(event)) {
    event.preventDefault();
    // do something...
  }
});

1

หากคุณกำลังมองหา "Better Javascript Mouse Events" ที่อนุญาตให้ใช้

  • ซ้าย mousedown
  • mousedown กลาง
  • สิทธิถูกต้อง
  • คลิกเมาส์ซ้าย
  • เมาส์กลาง
  • คลิกเมาส์ขวา
  • คลิกซ้าย
  • คลิกกลาง
  • คลิกขวา
  • ล้อเลื่อนขึ้น
  • ล้อเลื่อนลง

ลองดูที่จาวาสคริปต์ปกติในเบราว์เซอร์ข้ามซึ่งเป็นต้นเหตุของเหตุการณ์ข้างต้นและลบอาการปวดหัวออก เพียงแค่คัดลอกและวางลงในส่วนหัวของสคริปต์ของคุณหรือรวมไว้ในไฟล์ใน<head>เอกสารของคุณ จากนั้นผูกกิจกรรมของคุณอ้างถึงบล็อกโค้ดถัดไปด้านล่างซึ่งแสดงตัวอย่าง jquery ของการจับภาพเหตุการณ์และยิงฟังก์ชันที่กำหนดให้กับพวกเขา

หากคุณสนใจที่จะเห็นมันใช้งานได้ดู jsFiddle: https://jsfiddle.net/BNefn/

/**
   Better Javascript Mouse Events
   Author: Casey Childers
**/
(function(){
    // use addEvent cross-browser shim: https://gist.github.com/dciccale/5394590/
    var addEvent = function(a,b,c){try{a.addEventListener(b,c,!1)}catch(d){a.attachEvent('on'+b,c)}};

    /* This function detects what mouse button was used, left, right, middle, or middle scroll either direction */
    function GetMouseButton(e) {
        e = window.event || e; // Normalize event variable

        var button = '';
        if (e.type == 'mousedown' || e.type == 'click' || e.type == 'contextmenu' || e.type == 'mouseup') {
            if (e.which == null) {
                button = (e.button < 2) ? "left" : ((e.button == 4) ? "middle" : "right");
            } else {
                button = (e.which < 2) ? "left" : ((e.which == 2) ? "middle" : "right");
            }
        } else {
            var direction = e.detail ? e.detail * (-120) : e.wheelDelta;
            switch (direction) {
                case 120:
                case 240:
                case 360:
                    button = "up";
                break;
                case -120:
                case -240:
                case -360:
                    button = "down";
                break;
            }
        }

        var type = e.type
        if(e.type == 'contextmenu') {type = "click";}
        if(e.type == 'DOMMouseScroll') {type = "mousewheel";}

        switch(button) {
            case 'contextmenu':
            case 'left':
            case 'middle':
            case 'up':
            case 'down':
            case 'right':
                if (document.createEvent) {
                  event = new Event(type+':'+button);
                  e.target.dispatchEvent(event);
                } else {
                  event = document.createEventObject();
                  e.target.fireEvent('on'+type+':'+button, event);
                }
            break;
        }
    }

    addEvent(window, 'mousedown', GetMouseButton);
    addEvent(window, 'mouseup', GetMouseButton);
    addEvent(window, 'click', GetMouseButton);
    addEvent(window, 'contextmenu', GetMouseButton);

    /* One of FireFox's browser versions doesn't recognize mousewheel, we account for that in this line */
    var MouseWheelEvent = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";
    addEvent(window, MouseWheelEvent, GetMouseButton);
})();

ตัวอย่างเหตุการณ์การคลิกเมาส์ที่ดีขึ้น (ใช้ jQuery เพื่อความเรียบง่าย แต่ข้างต้นจะทำงานข้ามเบราว์เซอร์และใช้ชื่อเหตุการณ์เดียวกันกับที่ IE ใช้บนหน้าชื่อ)

<div id="Test"></div>
<script type="text/javascript">
    $('#Test').on('mouseup',function(e){$(this).append(e.type+'<br />');})
              .on('mouseup:left',function(e){$(this).append(e.type+'<br />');})
              .on('mouseup:middle',function(e){$(this).append(e.type+'<br />');})
              .on('mouseup:right',function(e){$(this).append(e.type+'<br />');})

              .on('click',function(e){$(this).append(e.type+'<br />');})
              .on('click:left',function(e){$(this).append(e.type+'<br />');})
              .on('click:middle',function(e){$(this).append(e.type+'<br />');})
              .on('click:right',function(e){$(this).append(e.type+'<br />');})

              .on('mousedown',function(e){$(this).html('').append(e.type+'<br />');})
              .on('mousedown:left',function(e){$(this).append(e.type+'<br />');})
              .on('mousedown:middle',function(e){$(this).append(e.type+'<br />');})
              .on('mousedown:right',function(e){$(this).append(e.type+'<br />');})

              .on('mousewheel',function(e){$(this).append(e.type+'<br />');})
              .on('mousewheel:up',function(e){$(this).append(e.type+'<br />');})
              .on('mousewheel:down',function(e){$(this).append(e.type+'<br />');})
              ;
</script>

และสำหรับผู้ที่ต้องการรุ่นย่อ ...

!function(){function e(e){e=window.event||e;var t="";if("mousedown"==e.type||"click"==e.type||"contextmenu"==e.type||"mouseup"==e.type)t=null==e.which?e.button<2?"left":4==e.button?"middle":"right":e.which<2?"left":2==e.which?"middle":"right";else{var n=e.detail?-120*e.detail:e.wheelDelta;switch(n){case 120:case 240:case 360:t="up";break;case-120:case-240:case-360:t="down"}}var c=e.type;switch("contextmenu"==e.type&&(c="click"),"DOMMouseScroll"==e.type&&(c="mousewheel"),t){case"contextmenu":case"left":case"middle":case"up":case"down":case"right":document.createEvent?(event=new Event(c+":"+t),e.target.dispatchEvent(event)):(event=document.createEventObject(),e.target.fireEvent("on"+c+":"+t,event))}}var t=function(e,t,n){try{e.addEventListener(t,n,!1)}catch(c){e.attachEvent("on"+t,n)}};t(window,"mousedown",e),t(window,"mouseup",e),t(window,"click",e),t(window,"contextmenu",e);var n=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel";t(window,n,e)}();

1
$("body").on({
    click: function(){alert("left click");},
    contextmenu: function(){alert("right click");}   
});

คุณควรจะเพิ่มรายละเอียดบางอย่างเพื่อดูว่ามันทำงานอย่างไร - ฉันยอมรับว่ามันเป็นเช่นนั้น แต่คุณไม่ได้อธิบายว่าทำไมถึงต้อง n00b
Adam Copley

0
$(document).ready(function () {
    var resizing = false;
    var frame = $("#frame");
    var origHeightFrame = frame.height();
    var origwidthFrame = frame.width();
    var origPosYGrip = $("#frame-grip").offset().top;
    var origPosXGrip = $("#frame-grip").offset().left;
    var gripHeight = $("#frame-grip").height();
    var gripWidth = $("#frame-grip").width();

    $("#frame-grip").mouseup(function (e) {
        resizing = false;
    });

    $("#frame-grip").mousedown(function (e) {
        resizing = true;
    });
    document.onmousemove = getMousepoints;
    var mousex = 0, mousey = 0, scrollTop = 0, scrollLeft = 0;
    function getMousepoints() {
        if (resizing) {
            var MouseBtnClick = event.which;
            if (MouseBtnClick == 1) {
                scrollTop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
                scrollLeft = document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft;
                mousex = event.clientX + scrollLeft;
                mousey = event.clientY + scrollTop;

                frame.height(mousey);
                frame.width(mousex);
            }
            else {
                resizing = false;
            }
        }
        return true;

    }


});

@ Nitin.Katti: - นี่คือการทำงานบนจุดเมาส์และคลิกปุ่มซ้ายถ้าค้างปุ่มซ้ายของเมาส์แล้วมันจะหยุดการปรับขนาด
user2335866


0

นอกจากนี้ยังมีวิธีการทำโดยไม่มี JQuery!

ตรวจสอบสิ่งนี้:

document.addEventListener("mousedown", function(evt) {
    switch(evt.buttons) {
      case 1: // left mouse
      case 2: // right mouse
      case 3: // middle mouse <- I didn't tested that, I just got a touchpad
    }
});

เมาส์กลางดูเหมือนว่า 4 บนพีซีของฉัน (Ubuntu 14.04 - FireFox) ผมเชื่อว่าทางซ้ายและขวาพร้อมกันคือ 3 และตรงกลางคือ 4 .. จะต้องมีดีกว่า "ข้ามเบราเซอร์" มี "ข้ามแพลตฟอร์ม" วิธี ...
พอล

0
$.fn.rightclick = function(func){
    $(this).mousedown(function(event){
        if(event.button == 2) {
            var oncontextmenu = document.oncontextmenu;
            document.oncontextmenu = function(){return false;};
            setTimeout(function(){document.oncontextmenu = oncontextmenu;},300);
            func(event);
            return false;
        }
    });
};

$('.item').rightclick(function(e){ 
    alert("item");
}); 

0

สำหรับผู้ที่กำลังสงสัยว่าพวกเขาควรใช้หรือไม่ใช้event.whichในวานิลลา JSหรือเชิงมุม : ตอนนี้เลิกใช้แล้วดังนั้นควรใช้event.buttonsแทน

หมายเหตุ:ด้วยวิธีนี้และเหตุการณ์(mousedown) :

  • กดคลิกซ้ายที่เกี่ยวข้องกับ 1
  • กดขวาคลิกที่เกี่ยวข้องกับ 2
  • การกดปุ่มเลื่อนมีความสัมพันธ์กับ 4

และเหตุการณ์(mouseup)จะไม่ส่งคืนหมายเลขเดิม แต่เป็น0แทน

ที่มา: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons


-1
    $.event.special.rightclick = {
     bindType: "contextmenu",
        delegateType: "contextmenu"
      };

   $(document).on("rightclick", "div", function() {
   console.log("hello");
    return false;
    });

1
สวัสดี คำตอบนี้ถูกตั้งค่าสถานะเป็นคุณภาพต่ำสำหรับการลบ ดูเหมือนว่าคุณได้เพิ่มคำตอบสำหรับคำถามที่ตอบไปแล้ว หากไม่มีคำอธิบายในคำตอบที่อธิบายว่าการบริจาคนี้ช่วยปรับปรุงคำตอบที่ยอมรับได้อย่างไรฉันก็อยากจะโหวตให้ลบด้วย
Popnoodles

1
@ ป๊อปก๋วยเตี๋ยวมันไม่เป็นไร แต่อย่าทำซ้ำเลย
Yip Man WingChun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.