我有另外一个问题我有jqTouch ... 我正在尝试检测单击了哪个元素来触发动画,以便我可以将单击的项目中的参数传递给后续页面。
我的HTML是:
<div id="places">
<div class="toolbar">
<h1>Places</h1>
<a class="back" href="#">Back</a>
</div>
<ul>
<li id="1"><a href="#singleplace">Place 1</a></li>
<li id="2"><a href="#singleplace">Place 2</a></li>
<li id="3"><a href="#singleplace">Place 3</a></li>
</ul>
</div>
<div id="singleplace">
<div class="toolbar">
<h1></h1>
<a class="back" href="#">Back</a>
</div>
</div>
当我点击#places中的任何列表项时,我能够很好地滑到#singleplace,但我正在尝试检测单击了哪个元素,以便我可以将参数传递到#singleplace DIV。我的javascript是:
var placeID;
$('#places a').live('mouseup',function(){
$('#singleplace h1').html($(this).text())
placeID = $(this).parent().attr('id');
})
我尝试过几种替代$(el).live('event',fn())的方法,包括:
$('#places a').live('click',fn()...
$('#places a').live('mouseup',fn()...
$('#places a').live('tap',fn()...
$('#places a').tap(fn()...
这些似乎都不起作用。有没有更好的方法来处理这个问题? 我在jqTouch的问题页面上注意到:http://code.google.com/p/jqtouch/issues/detail?id=91 这可能是问题的一部分......
答案 0 :(得分:2)
如果您只是尝试传递点击了哪个列表项的信息,则可以将onClick="function(event)"
附加到项目...
<li><a id="1" title="first" onClick="send(event)" href="#singleplace">Place 1</a></li>
然后在js ...
function send(event) {
x=event.target;
}
其中x.id=='1' x.title==first & x.text=='Place 1'
答案 1 :(得分:2)
我找到了解决方案:
tap(function()...)
代替live('click',function()...)
jQT.goTo('#singleplace', 'slide');
return false;
var placeID;
$('#places a').tap(function(){
$('#singleplace h1').html($(this).text());
placeID = $(this).parent().attr('id');
jQT.goTo('#singleplace', 'slide');
return false;
});
这对我来说很有用,即使在Firefox和Safari中也是如此,不仅仅适用于移动游戏。
其他一些信息:
JQTouch中的直播活动似乎存在问题:http://code.google.com/p/jqtouch/issues/detail?id=165
请告诉我这是否适合您。