更改我的。使用jQuery单击类型

更改我的。使用jQuery单击类型,jquery,Jquery,我正在将我的dom从: <div class="empty item1 ui-state-default" id="add1"></div> 但问题是,这仍然是打开点击,这是火灾准备就绪 $('.ui-state-default').bind('click', function(e) { $(".upload").show(); }); 使用.bind()注册事件处理程序时,将在执行事件注册代码时测试选择器,即将事件处理程序添加到元素中。在此之后对元素所

我正在将我的dom从:

<div class="empty item1 ui-state-default" id="add1"></div>
但问题是,这仍然是打开点击,这是火灾准备就绪

$('.ui-state-default').bind('click', function(e) {
    $(".upload").show();
   });
使用.bind()注册事件处理程序时,将在执行事件注册代码时测试选择器,即将事件处理程序添加到元素中。在此之后对元素所做的更改不会影响处理程序的执行,只要它没有被注销

在您的情况下,一个可能的解决方案是使用事件委派模型,在调用处理程序之前测试选择器

改变

$('.ui-state-default').bind('click', function(e) {
    $(".upload").show();
});

更新: 使用bind的变通解决方案

$('.ui-state-default').bind('click', function(e) {
    if($(this).hasClass('ui-state-default')){
        $(".upload").show();
    }
});

是的,但在触摸屏上,它可能有一个与我猜测的单击不同的事件。我使用了.bind,因为它理解bind。@Blynn可能你应该在问题中提到它,它没有提到任何关于移动的内容
$('.ui-state-default').bind('click', function(e) {
    $(".upload").show();
});
$(document).on('click', '.ui-state-default', function(e) {
    $(".upload").show();
});
$('.ui-state-default').bind('click', function(e) {
    if($(this).hasClass('ui-state-default')){
        $(".upload").show();
    }
});