0

この関数によって作成されたそれぞれの単一要素でタッチ イベントを機能させる方法。このコードは、「#demo-1 p」の背景色の変更をすべて同時に行うため、そのうちの 1 つに触れても機能しません。

function token1(r) {
    for (var j = 0; j < r.length; j++) {
        if (r[j].match(srr[0], "g")) {
            $('<p>').html(r[j]).appendTo("#demo-1");
            scnt++;     
            $('#demo-1 p').bind("touchstart", function (event) {
                $('#demo-1 p').css('background-color', 'red')
            });
            $('#demo-1 p').bind("touchmove", function (event) {
                $('#demo-1 p').css('background-color', 'white')
            });
            $('#demo-1 p').bind("touchend", function (event) {
                $('#demo-1 p').css('background-color', 'white')
            });
        } 
    } 
}
4

2 に答える 2

0

を試しましたjQuery.on()か?使い方はとても簡単です:

$( '#demo' ).on('touchstart', 'p', function(){
    $(this).css('background-color', 'red');
});
...

:これは 1 回だけ実行する必要があります。そのため、for ループの外側 (前または後) に配置します。

于 2012-10-25T07:59:47.957 に答える
0

わかりました、それの子要素をターゲットにして取得しました

$("#demo-1").bind("touchstart", function(e) {
            var $target = $(e.target);
            if ($target.is("p")) {
                $target.css('background-color', 'red')
            }
        });
于 2012-10-25T03:50:42.567 に答える