0

phonegap/jquery モバイル アプリを作成しており、swipeButton プラグインを使用して、スワイプによる削除アクションをシミュレートしています ( https://github.com/commadelimited/jquery.swipeButton.js )。

ただし、追加されたliにプラグイン機能を付けるのに苦労しています。

誰かが私を正しい方向に向けることができますか?

私のコードは次のとおりです。

$('#recordings-list').append('<li data-corners="false" data-shadow="false" data-iconshadow="true" data-icon="arrow-r" data-iconpos="right" class="ui-btn-icon-right ui-li-has-arrow"><a href="#view" class="ui-link-inherit" data-transition="slidefade">'
    + '<p class="ui-li-aside"><strong>' + resultString + '</strong> <br/> <span class="sync-label">' + syncStatus + '</span></p>'
    + '<h3 class="ui-li-heading">' + results.rows.item(i).name + '</h3>'
    + '<p class="ui-li-desc"><strong>' + results.rows.item(i).notes + '</strong></p>'
    + '<p class="ui-li-desc"> ' + results.rows.item(i).description + '</p>'
    + '</a></li>').swipeDelete({
                direction: 'swiperight', // standard jquery mobile event name
                btnLabel: 'Delete',
                btnTheme: 'b',
                btnClass: 'aSwipeBtn',
                click: function(e){
                    e.preventDefault();
                    alert("Swipey McSwipeo");
                }
            });
4

2 に答える 2

0

コードがチェーンswipeDeleteされていない理由appendは、追加されている新しい要素ではなく、追加されているセレクターで関数を呼び出します。

チェーンのようなトラバーサル メソッドを.children('li:last')追加して、要素オブジェクトとして追加したばかりの文字列をターゲットにすることができます

$('#recordings-list').append('<li>....</li>').children('li:last').swipeDelete() 

1 つのチェーン内のさまざまな要素をターゲットにする例として、次のことを検討してください。

$(selector).addClass('foo')/* method returns original selector*/
           .parent().css('color','red')/* method returns parent element original selector*/
           .find('p:first').text('test') /*first "p" tag in parent of original selector*/
           .hide() /* still returns first "p" tag" */
           .fadeIn(); 
于 2012-11-14T12:32:56.827 に答える
0

$('#recordings-list')現在、プラグインをアペンドではなくアタッチしています。次の<li> ようにする必要があります。

var $li = $('<li data-corners="false" data-shadow="false" data-iconshadow="true" data-icon="arrow-r" data-iconpos="right" class="ui-btn-icon-right ui-li-has-arrow"><a href="#view" class="ui-link-inherit" data-transition="slidefade">'
    + '<p class="ui-li-aside"><strong>' + resultString + '</strong> <br/> <span class="sync-label">' + syncStatus + '</span></p>'
    + '<h3 class="ui-li-heading">' + results.rows.item(i).name + '</h3>'
    + '<p class="ui-li-desc"><strong>' + results.rows.item(i).notes + '</strong></p>'
    + '<p class="ui-li-desc"> ' + results.rows.item(i).description + '</p>'
    + '</a></li>');

$('#recordings-list').append($li);
$li.swipeDelete({
                direction: 'swiperight', // standard jquery mobile event name
                btnLabel: 'Delete',
                btnTheme: 'b',
                btnClass: 'aSwipeBtn',
                click: function(e){
                    e.preventDefault();
                    alert("Swipey McSwipeo");
                }
            });
于 2012-11-14T12:27:49.030 に答える