功能不起作用

时间:2013-08-02 15:53:48

标签: jquery function jquery-mobile

我正在制作一个我有的网络应用创意原型 我有一个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)

2 个答案:

答案 0 :(得分:2)

更改此

$(".selector").on( "tap", movieSelector)

$("#movies").on("tap", ".selector", movieSelector)

你很高兴。您的代码无效,因为当您将selectormovieSelector()绑定时,它尚不可用。这应该可以解决这个问题,因为当movies为DOM时,ready可用。还有另一种方式。您可以 将其绑定到tap,而不是将movies绑定到最近的静态父级(在本例中为document)。

$(document).on("tap", ".selector", movieSelector)

您的代码还有两个问题:

  1. 您正在使用ready事件来完成所有这些操作。考虑使用诸如pageinitpageshow之类的页面事件来绑定您的数据/初始化内容等等。但由于您的代码中甚至没有data-role=page,我建议您从您的代码中删除jQM标记题。

  2. 此外,您使用了大量,代替;。您可能想要更改它。

答案 1 :(得分:1)

你需要在#movies

上休息
$("#movies").on( "tap", '.selector', movieSelector)

点击此处http://jsfiddle.net/SM5QJ/3/

问题是你将它绑定到dom中不存在的元素。 所以你可以做的是将它绑定到#movies并告诉它在.selector上的tap事件上的lissen 以这种方式执行此操作将使其更新附加到dom的项目。

您可以在此处详细了解http://api.jquery.com/on/