【问题标题】:How to call the function from htmlcode如何从html代码调用函数
【发布时间】:2021-02-18 14:55:34
【问题描述】:

我有 JS 代码,可以按预期工作。但是从函数调用“islandA.onclick”的插入,我需要从外部调用它 - 从 HTML 代码。 (还有更多的岛屿:)

    $(document).ready(function(){
        var islandA = document.getElementById("ostrovA");

        var websocket = new WebSocket("ws://localhost:8090/php-socket.php");
        
        islandA.onclick = function(event) {
                var messageJSON = {
                    team: '0001',
                    function: 'moveBoat'
                };
                websocket.send(JSON.stringify(messageJSON)); 
        }
        websocket.onmessage = function(event) {
            var Data = JSON.parse(event.data);
            moveBoat (); 
        };        

    });

需要的调用方式是 <img src='img/island.png' id='isladnA' onclick='hereSouldBetheCalling()'>

从https://www.php.net/manual/en/function.socket-create.php 使用(和修改)的代码 非常感谢:)

【问题讨论】:

  • “还有更多的岛屿” - 这并不意味着你必须回到老式的、丑陋的添加事件处理的方式使用笨重的 HTML 属性。您已经在使用 jQuery,因此请继续阅读使用 .on() 进行事件处理的工作原理。

标签: javascript html function call ws


【解决方案1】:

你可以把它放在你的 $(document).ready 中

var websocket = new WebSocket("ws://localhost:8090/php-socket.php");
 
 
$('#islandA').on('click', function(){

    var messageJSON = {
        team: '0001',
        function: 'moveBoat'
    };
    websocket.send(JSON.stringify(messageJSON)); 

});

这使用 jquery 的“on”方法来处理该元素的点击事件。如果您希望点击多张图片,您可以通过为所有这些图片分配一个公共类并使用它来识别它们,从一个定义中完成。

class="myIsland" id='isladnA' onclick='hereSouldBetheCalling()'>

$('.myIsland').on('click', function(e){
    // $(e.target)
    //    or
    // $(this)
}

这将绑定一个点击事件来为所有“myIsland”元素调用相同的函数。

【讨论】:

  • 很酷,非常感谢:) 它几乎是完美的。我唯一想念的是找出触发该动作的“id”。当我使用这个类时,“this.id”是未定义的。
  • 我已经更新了上面答案中的最后一个代码段,以演示如何获取触发事件的元素。我相信任何一种解决方案都应该有效。
猜你喜欢
  • 2015-01-16
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
相关资源
最近更新 更多