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