0

我正在开发一个具有动态创建元素的 Phonegap 应用程序。该应用程序可以在这里看到 当用户单击手风琴菜单以显示元素选择时创建元素。然后,用户可以通过单击菜单中的图像来选择要添加到布局的新元素。浏览器会提醒一个新元素将被插入一个标有新元素的 div 中。

这是踢球者,我正在使用 jQuery touch 插件来将新创建的元素拖放到屏幕上。当新元素被创建时,一个 class="touchMove" 被添加到元素中。问题是我似乎无法让触摸功能绑定到新元素。

我尝试过 live()、delegate() 和 on()。我可以获得一个点击事件来绑定并在点击时显示一个警告框,但我无法让触摸事件绑定到新元素。我添加了单击以进行测试。如果我将其更改为“触摸”,我什么也得不到,也许是因为它正在寻找要为函数定义的参数。身份证!

$('#newElement').delegate("img","click",function(){
                           // alert('I was clicked');
                            $(this).touch({
                                            animate: false,
                                            sticky: false,
                                            dragx: true,
                                            dragy: true,
                                            rotate: false,
                                            resort: true,
                                            scale: false
                                            });

                            });

同样,如果我取消注释警报功能并注释掉触摸功能,警报就会起作用。如果我注释掉警报并取消注释触摸功能,则不会发生任何事情。在此过程中,我看不到任何错误。

页面上的三个元素在使用此功能加载页面时可以很好地接收触摸功能

$('.touchMove').touch({
                           animate: false,
                           sticky: false,
                           dragx: true,
                           dragy: true,
                           rotate: false,
                           resort: true,
                           scale: false
                           });

“#2 Touch Me :)”元素工作正常。我正在尝试添加类(工作正常的“touchMove”),并使用该类将触摸功能附加到新元素。

顺便说一句,触摸功能仅在设备(Android、iPad)上运行,因此如果您在实际的计算机浏览器中查看它,触摸事件将不起作用。

对此问题的任何帮助将不胜感激。

4

1 回答 1

1

为什么不使用

//start to touch
$("body").on("touchstart mousedown","#newElement",function(e){
    alert("you started to touch");
});

//moving
$("body").on("touchmove mousemove","#newElement",function(e){
    alert("you moved");
});

//finished touching
$("body").on("touchstop mouseup","#newElement",function(e){
    alert("you stopped touching");
});

您需要使用 'live' 或 'on' 因为所有事件都在文档加载时绑定,因此任何绑定到在初始加载后添加到 dom 的对象的新事件都需要包含在回调中或与 jquery 绑定活”或“开”。

您还可以包含鼠标事件,以便在没有可用触摸屏时也可以使用功能。

于 2012-04-24T14:53:30.517 回答