1

スクロール リストで jquery touchwipe プラグインを使用してい
ますが、$(this) から属性を取得できません。誰もそれを修正する方法を知っていますか?

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;
    }
});

alert(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;
        }
    });
});
4

2 に答える 2

0

そうですね。$("#main_list_wrapper")_ NULLこのコード スニペットが JQuery onLoad にあることを確認してください。$(document).ready(function () { /* CODE */ });

find()コンマで区切られたクラス名のリストを取ります。
変更:$(this).find('.t8.cancel')これに:$(this).find('.t8, .cancel')

于 2013-01-08T03:06:29.813 に答える
0

$(this)function()は が属しているオブジェクトを参照していますが、あなたの を参照していません$main_list_wrapperこの投稿

を参照してください。代わり に使用できます。

$main_list_wrapper.find('.t8.cancel').removeClass('show');

于 2013-01-08T03:08:43.020 に答える