Javascript SAPUI5:如何将单击事件绑定到水平布局?

Javascript SAPUI5:如何将单击事件绑定到水平布局?,javascript,jquery,html,sapui5,Javascript,Jquery,Html,Sapui5,嗨,我正在用JS开发我的视图,我一直在为我的水平布局元素绑定一个点击处理程序。我尝试过使用Jquery $("#myHorizontalLayout").bind("click",function(){window.alert()}); 这不起作用,然后我尝试将attachPress与显然不存在的元素一起使用。请帮忙 更新: JS视图是应用程序的默认视图 从jQuery1.7开始,.on()方法是 将事件处理程序附加到文档。对于早期版本 .bind()方法用于将事件处理程序直接附加到 元素。

嗨,我正在用JS开发我的视图,我一直在为我的水平布局元素绑定一个点击处理程序。我尝试过使用Jquery

$("#myHorizontalLayout").bind("click",function(){window.alert()}); 
这不起作用,然后我尝试将
attachPress
与显然不存在的元素一起使用。请帮忙

更新:

JS视图是应用程序的默认视图

从jQuery1.7开始,.on()方法是 将事件处理程序附加到文档。对于早期版本 .bind()方法用于将事件处理程序直接附加到 元素。处理程序将附加到中当前选定的元素 jQuery对象,因此这些元素必须存在于调用点 to.bind()发生

因此,请尝试将
bind
替换为
on
上的
,并告诉我它是否有效

从jQuery1.7开始,.on()方法是 将事件处理程序附加到文档。对于早期版本 .bind()方法用于将事件处理程序直接附加到 元素。处理程序将附加到中当前选定的元素 jQuery对象,因此这些元素必须存在于调用点 to.bind()发生

因此,请尝试将
bind
替换为
on
上的
,并告诉我它是否有效

这不起作用,然后我尝试使用attachPress和显然不存在的元素。请帮忙

这是否意味着您正在附加事件处理程序的元素此时不存在?如果是这种情况,您可以将处理程序挂接到DOM层次结构中的某个容器上,您可以确定该容器存在并过滤单击事件

例如:

$(“body”)。在(“单击”上,在“myHorizontalLayout”上,函数(){
警惕(“嘿,你!”);
});
这不起作用,然后我尝试使用attachPress和显然不存在的元素。请帮忙

这是否意味着您正在附加事件处理程序的元素此时不存在?如果是这种情况,您可以将处理程序挂接到DOM层次结构中的某个容器上,您可以确定该容器存在并过滤单击事件

例如:

$(“body”)。在(“单击”上,在“myHorizontalLayout”上,函数(){
警惕(“嘿,你!”);

});当/bind
上的
不起作用时,可能是此时实际上尚未创建控件的HTML。但是,即使延迟绑定,重新呈现(更改后重新创建HTML)也会删除侦听器,至少在绑定到控件本身时是这样

执行此操作的正确方法是在每个控件(此处:布局上)上使用通用的
attachBrowserEvent
函数,该函数在内部处理所有渲染/重新渲染内容,请参见此示例:

attachBrowserEvent
适用于任何浏览器事件,因为它将新的浏览器事件侦听器附加到控件的根节点。对于最常见的浏览器事件,UI5不执行事件委派,因此对于“单击”事件和其他几个
addEventDelegate
,也可以使用,正如aborjinik所指出的


或者,使用普通jQuery机制在
级别上进行监听通常也会起作用。

当/bind
上的
不起作用时,可能是此时实际上还没有创建控件的HTML。但是,即使延迟绑定,重新呈现(更改后重新创建HTML)也会删除侦听器,至少在绑定到控件本身时是这样

执行此操作的正确方法是在每个控件(此处:布局上)上使用通用的
attachBrowserEvent
函数,该函数在内部处理所有渲染/重新渲染内容,请参见此示例:

attachBrowserEvent
适用于任何浏览器事件,因为它将新的浏览器事件侦听器附加到控件的根节点。对于最常见的浏览器事件,UI5不执行事件委派,因此对于“单击”事件和其他几个
addEventDelegate
,也可以使用,正如aborjinik所指出的


或者,使用普通jQuery机制在
级别上进行监听通常也会起作用。

控制台日志中有错误吗?如果是这样,发布它,如果不是,你需要用更多信息更新你的问题,比如什么时候加载你的视图,什么时候执行js。是否有任何以前的事件附加到该元素?我的控制台日志中没有错误。我的视图在应用程序的init上被调用。您的js代码是否围绕$(document).ready(function(){})?控制台日志中有错误吗?如果是这样,发布它,如果不是,你需要用更多信息更新你的问题,比如什么时候加载你的视图,什么时候执行js。是否有任何以前的事件附加到该元素?我的控制台日志中没有错误。我的视图在应用程序的init上被调用。您的js代码是否围绕$(document).ready(function(){})?对不起,这也不行
显然不存在
我的意思是说没有与元素关联的名为
.attachPress()
的方法。很抱歉,这也不起作用
显然不存在
我的意思是说没有与元素关联的名为
.attachPress()
的方法。顾名思义,attachBrowserEvent将向特定节点添加事件侦听器。可以使用事件委派,而不是添加许多事件侦听器,因为名称暗示attachBrowserEvent将向特定节点添加事件侦听器。也可以使用事件委派,而不是添加许多事件侦听器