我正在制作一个我有的网络应用创意原型 我有一个jsFiddle设置向您展示。 (原型原型)
我的两个功能完美无缺。
然而,一旦选项出现,下一个函数在被调用时不起作用。
也许我在失明?我今天有一个8小时的编码会议。
但是一旦选择了一个选项,持有选项的容器就会消失
function begin(){
$( this ).hide();
$(".center-logo").hide(),
$(".clapper").show(),
$(".clapper").text("tap to chose option")
}
function movieChoice(){
$("#film-list").fadeIn('slow'),
$(movieList.movies).each(function(index){$("#movies").append('<li class="selector" id="'+this.rating+'">' + this.name + '</li>');});
}
function movieSelector(){
$("#film-list").fadeOut('slow')
$(".clapper").hide()
$(".date").show()
}
$("#begin").on( "swiperight", begin)
$(".clapper").on( "tap", movieChoice)
$(".selector").on( "tap", movieSelector)
答案 0 :(得分:2)
更改此
$(".selector").on( "tap", movieSelector)
到
$("#movies").on("tap", ".selector", movieSelector)
你很高兴。您的代码无效,因为当您将selector
与movieSelector()
绑定时,它尚不可用。这应该可以解决这个问题,因为当movies
为DOM时,ready
可用。还有另一种方式。您可以 将其绑定到tap
,而不是将movies
绑定到最近的静态父级(在本例中为document
)。
$(document).on("tap", ".selector", movieSelector)
您的代码还有两个问题:
您正在使用ready
事件来完成所有这些操作。考虑使用诸如pageinit
或pageshow
之类的页面事件来绑定您的数据/初始化内容等等。但由于您的代码中甚至没有data-role=page
,我建议您从您的代码中删除jQM标记题。
此外,您使用了大量,
代替;
。您可能想要更改它。
答案 1 :(得分:1)
你需要在#movies
上休息$("#movies").on( "tap", '.selector', movieSelector)
点击此处http://jsfiddle.net/SM5QJ/3/
问题是你将它绑定到dom中不存在的元素。 所以你可以做的是将它绑定到#movies并告诉它在.selector上的tap事件上的lissen 以这种方式执行此操作将使其更新附加到dom的项目。
您可以在此处详细了解http://api.jquery.com/on/