Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wenn Sie auf eine beliebige Schaltfläche klicken, wird ein Eingabeaufforderungsfeld angezeigt. Wie kann man unterscheiden, welche Schaltfläche angeklickt wird und welches Eingabeaufforderungsfeld zu Ihnen gehört?

Es gibt viele Schaltflächen auf der Benutzeroberfläche. Das Eingabeaufforderungsfeld wird jetzt angezeigt, wenn die Maus hineinbewegt wird, und verschwindet, wenn die Maus herausgezogen wird. So ermitteln Sie, welche Schaltfläche das Einzugs- und Entfernungsereignis verursacht.
Kann ich direkt basierend auf dem Ringmenü vonwheelmenu.js schreiben?

巴扎黑巴扎黑2686 Tage vor1054

Antworte allen(5)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:32:51

    说实话我没看懂你到底是想问什么,一般来讲判断目标元素的方法常用的有两种:

    一种是给每个按钮都绑定一个事件,这样每个相应事件对应的元素都是相对的。

    第二种是通过事件委托来实现,通过e.target来确定具体是哪个按钮触发。

    还有一种是像在canvas里这样的情况下,由于无法对canvas里的每个对象是否触发事件进行直接获取,你需要用观察者模式来判断鼠标位置是否在某个对象内部,至于检测是否在多边形内部的方法可以用射线法。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-06-12 09:32:51

    事件委托。根据e.terget来判断。或者用观察者模式,把独有的值当参数

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-12 09:32:51

    一般的插件都會有callback函數,假如有,你可以重構callback
    對每個btn委託click事件,從而判斷是那個btn

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-12 09:32:51

    委托

    把事件写在一个容器里面,如p

    <p id="pButtons">
        <p>
            //这里面放你的按钮些
        </p>
    </p>
    //写移动事件,把事件写在外层容器,不用考虑异步加载的问题
    $('#pButtons').mousemove(function(e){
        e=e||window.event;
        //该对象为鼠标移动的时候,拿到的节点
        var target=e.target||e.srcElement;
        //判断该节点是否为按钮,节点名为大写
        if(target.nodeName=='BUTTON'){
            //$(target)就可以操作这个鼠标所在的按钮
        }
    });

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:32:51

    事件委托 evt.target

    Antwort
    0
  • StornierenAntwort