小编Rob*_*ert的帖子

组合点击和触摸启动事件不起作用

我有一个网站,我正在尝试使其在移动设备上也能正常运行。但是,当我分别组合 PC 和平板电脑的 click 和 touchstart 事件时,两者都不起作用(单击事件附加到的元素不会触发)。谁能解释我应该如何解决这个问题?这是一个元素不起作用的示例,笔具有整个项目。

HTML

<div id="menu">
    <h1>MENU</h1>
</div>
<div class="dropdown hidden">
    <ul>
        <li id="home_navlink">Home</li>
        <li id="about_navlink">About Me</li>
        <li id="work_navlink">My Work</li>
        <li id="contact_navlink">Contact Me</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

JS

let menu = document.getElementById("menu");
let dropdown = document.getElementsByClassName("dropdown")[0];
menu.addEventListener("click touchstart", function(){
    if(dropdown.classList.contains("showing")){
        dropdown.classList.remove("showing");
        dropdown.classList.add("hidden");
    }
    else{
        dropdown.classList.remove("hidden");
        dropdown.classList.add("showing");
    }
})
Run Code Online (Sandbox Code Playgroud)

钢笔

javascript

4
推荐指数
1
解决办法
1万
查看次数

从另一个脚本访问一个脚本中的方法

我有一对我用C#编写的脚本,其中一个脚本从另一个脚本调用一个方法.但是,我收到以下错误:

Member 'PlayerActions.Attack()' cannot be accessed with an instance reference; qualify it with a type name instead

这是我想要调用的方法所在的位置:

public class PlayerActions:MonoBehaviour{
    public static void Attack(){
        Debug.Log("Attacking");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图调用该方法的地方:

public class Combat:MonoBehaviour{
    PlayerActions playerActions;
    void Start(){
        playerActions = GetComponent<PlayerActions>();
        playerActions.Attack();
    }
}
Run Code Online (Sandbox Code Playgroud)

两个脚本都附加到同一个游戏对象.

任何人都可以告诉我如何修复上面提到的错误以及为什么我实际上得到错误?我一直认为你需要引用你试图访问的类,但从我的理解,这个错误是另外说的.

c# unity-game-engine

1
推荐指数
1
解决办法
116
查看次数

标签 统计

c# ×1

javascript ×1

unity-game-engine ×1