jquery touchwipe如何获得$(this)

时间:2013-01-08 02:33:45

标签: javascript jquery web-applications mobile touch

我在滚动列表中使用jquery touchwipe插件,我无法获得 来自$(this)的属性。我想使用$(this)来获取其子项elment class =“t7 edit”并向其添加“show”类。有人知道如何修复它吗?

HTML:

                <div id="main_list_wrapper">
                    <div class="item">
                        <div class="t7 edit"></div>
                        <div class="t8 cancel"></div>
                    </div>
                    <div class="item">
                        <div class="t7 edit"></div>
                        <div class="t8 cancel"></div>
                    </div>
                    <div class="item">
                        <div class="t7 edit"></div>
                        <div class="t8 cancel"></div>
                    </div>
                    <div class="item">
                        <div class="t7 edit"></div>
                        <div class="t8 cancel"></div>
                    </div>
                    <div class="item">
                        <div class="t7 edit"></div>
                        <div class="t8 cancel"></div>
                    </div>
                </div>

脚本代码:

var $main_list_wrapper = $("#main_list_wrapper").find('.item');

$main_list_wrapper.touchwipe({
    preventDefaultEvents: false,
    wipeLeft: function() { 
        $(this).find('.t8.cancel').removeClass('show');
        $(this).find('.t7.edit').removeClass('show');
        var thisclass = $(this).attr('class');
        alert(thisclass);
        return false;
    },
    wipeRight: function() { 
        $sb(this).find('.t8.cancel').addClass('show');
        $sb(this).find('.t7.edit').addClass('show');
        return false;
    }
});

喜欢警报(thisclass)。它显示“未定义”。


谢谢大家。我的朋友写给我,这很有用!

$main_list_wrapper.each(function () {
    var $this = $sb(this);

    $this.touchwipe({
        preventDefaultEvents: false,
        wipeLeft: function() { 
            var $pcs = $this;
            $pcs.find('.t8').removeClass('show');
            $pcs.find('.t7').removeClass('show');
            return false;
        },
        wipeRight: function() { 
            var $pcs = $this;
            $pcs.find('.t8').addClass('show');
            $pcs.find('.t7').addClass('show');
            return false;
        }
    });
});

2 个答案:

答案 0 :(得分:0)

好吧,$("#main_list_wrapper")NULL。确保此代码段位于JQuery onLoad中:$(document).ready(function () { /* CODE */ });

find()获取以逗号分隔的类名列表 更改:$(this).find('.t8.cancel')到此:$(this).find('.t8, .cancel')

答案 1 :(得分:0)

$(this)是指function()所属的对象,而不是指$main_list_wrapper

请参阅此post

您可以改为使用$main_list_wrapper.find('.t8.cancel').removeClass('show');