0

クリックしたときに新しい変更をhtmlに戻すまたは適用する方法を理解しようとしています。

「TODO」コメントを見てみましょう。$(o1) で新しい値の変更を確認できますが、「この」値を持つクリック時の呼び出し元にバブルアップする方法は?

var fooMouseClick = function(parmThis)
{
    var $HtmlSpans = $(parmThis.parentElement.innerHtml);

    $.each($HtmlSpans, function(i1, o1) {
        if ($(o1).attr('data-column-sort-ordering') == "") {
           $(o1).attr('data-column-sort-ordering', 'ASC');

           //TODO - How to apply this new "$(o1)" changes to parmThis so the parent script caller can be updated.
        }
    });
}
var foo2 = function() 
{
    $('#Box1 li[title="Model"] span.SpanRight-SortOrdering').click(function() {
        fooMouseClick(this);
    });
}
4

2 に答える 2

1

コードは新しいオブジェクト$(parmThis.parentElement.innerHtml);を作成するため、変更を加えても元のオブジェクトは変更されません。

これを試して:

var fooMouseClick = function(parmThis)
{
    var $HtmlSpans = $(parmThis).parent().children();

    $.each($HtmlSpans, function(i1, o1) {
        if ($(o1).attr('data-column-sort-ordering') == "") {
           $(o1).attr('data-column-sort-ordering', 'ASC');

        }
    });
}

また、セレクターが動的に変更された値に基づいている場合は、委任されたイベント ハンドラーを使用する必要があることに注意してください。たとえば、要素のクリック イベントを処理する場合は、次のコードを使用しますdata-column-sort-ordering="ASC"(この値は動的に変更されます)。

$('#Box1').on("click",'li[title="Model"] span[data-column-sort-ordering="ASC"]',function() {
        fooMouseClick(this);
});
于 2013-11-01T14:12:17.697 に答える
0

これを試して:

$("#Box1").on("click","li[title='Model'] span.SpanRight-SortOrdering",function() {
    fooMouseClick(this);
});

詳細はこちら。

于 2013-11-01T13:27:01.110 に答える