0

如何使触摸事件在此函数创建的每个元素的单个元素上起作用。此代码不起作用,因为即使我触摸其中一个,它也会使所有“#demo-1 p”背景颜色一起变化。

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

好的,我通过定位它的子元素得到它

$("#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 回答
0

你试过了jQuery.on()吗?它真的很容易使用:

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

注意这应该只执行一次。所以把它放在 for 循环之外(之前或之后)。

于 2012-10-25T07:59:47.957 回答