.click()方法不起作用

时间:2014-11-20 17:54:45

标签: jquery jquery-mobile

这里我有一个类名和#34; lineIcon"的链接。因为我写了2个函数, 第一个如下, - 我添加一个类' overlayShow'。 现在点击' overlayshow'我又增加了一个名为" overlayHide"并删除现有的课程' overlayshow'。通过使用.addClass()和.removeClass()方法添加类和删除类。所以到现在为止,代码正按照我的意图进行。

第二个功能如下,点击" overlayHide"我添加了以前的课程' overlayshow'并删除" overlayHide"类。

现在的问题是第二个功能是没有触发甚至没有发出警报但是在第一个功能类中被删除并添加了' overlayHide'类。

$('.lineIcon').addClass('overlayShow');
$('.overlayShow').click(function () {
    $(this).addClass('overlayHide');
    $(this).removeClass('overlayShow');
})

$('.overlayHide').click(function () {
    alert("fsdf");
    $(this).addClass('overlayShow');
    $(this).removeClass('overlayHide');
})

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,当您声明选择器$('selector')时,它只创建一个当前与选择器条件匹配的静态元素列表,因此,它不是匹配{{{ 1}}或$('.overlayShow')

使用jQuery.fn.on( events [, selector ] [, data ], handler )您可以声明您的事件,然后选择一个选择器来过滤将调用处理程序的所选元素的后代。

这可以解决您的问题:

$('.overlayHide')

以下是我提供的代码的实时示例

jsFiddle Example

更新

正如@ezanker所述,为一个处理程序提供两个函数是不必要的,可以在一个函数中完成。

他还提供jsFiddle example

参考: