我有一个arduino网络服务器服务器和一个普通的网络服务器
这些服务器之间的通信使用链接系统,如:
正常的Web服务器到Arduiono服务器:
> ArduinoServer / light1 = on – 灯亮
> ArduinoServer / light1 =关闭 – 指示灯熄灭
Arduino Webserver到普通网络服务器:
> normalWebserver / temperature = 22& humidity = 56& light1 = on
> normalWebserver / temperature = 22& humidity = 56& light1 = off
comunicaton运行良好,但问题在于操作按钮,当我切换灯时,我只需要访问永恒的arduino websever链接,我也使用ajax来检查灯光声明.
如果light语句被更改,我的div.id =“light1”将获取新的javascript内容和我的旧代码,以防止重定向到arduino webserver不再有效.
// Attach click handler to all 'access-only' links.
$('a.access-only').click(function() {
// Once the link is clicked, access its URL with a GET request.
$.get($(this).attr('href'), function(response) {
// Do nothing here, the URL has been accessed.
});
// Return false to prevent the browser's default click action.
return false;
});
但即使使用ajax中的新内容,我也需要一个代码来执行此操作.
解决方法:
您必须使用事件委托而不是事件处理程序,因为您具有动态生成的内容.在$.get上,您可以删除回调.如果你不想再做任何事情,那就不需要了.您应该使用preventDefault来打破标签上的点击执行.
$(document).on('click', 'a.access-only', function(e) {
e.preventDefault();
$.get($(this).attr('href'));
return false;
});