0

我正在尝试在单击时添加回调函数(当用户第二次单击按钮时)。

我有

$('#toggle').live('click', function(){
        $this=$(this);
        $this.attr('id', 'detail')
        turn()
    }, function(){
        $this.attr('id','detail_close')
        turn()
    })

我似乎无法将 id 更改为 detail_close 并在第二次单击后再次调用 turn() 。有小费吗?非常感谢!

4

2 回答 2

1
   var count = 0; // a counter
   $(document).on('click', '#toggle', function(){

        $this = $(this);
        $this.prop('id', 'detail');  // may use prop(), instead of attr()

        count++;  // increase counter value

        // checking for counter value
        if(count > 1) {
             // do something on second click

             $this.prop('id', 'detail_close'); // change id
             turn();  // call turn()

             count = 0; // reset the counter
        }
    });

由于.live()已弃用,因此为了使委托事件处理使用.on()如下方法:

$(StaticParent).on(eventName, target, handlerFunction)
于 2012-09-12T18:12:42.983 回答
0
$(document).on('click', '#toggle', function(){
    $this=$(this);
    if($this.prop('id') == 'detail'){
        $this.prop('id', 'detail_close');
        turn();
    }else{
        $this.prop('id', 'detail');
        turn();
    }
});

我们在最新版本的 jQuery 中使用 .on 和 .prop。

于 2012-09-12T18:09:52.553 回答