将触摸事件绑定到由数组创建的元素

时间:2012-10-24 09:19:07

标签: android jquery

如何使触摸事件处理由此函数创建的每个元素的单个元素。此代码不起作用,因为即使我触摸其中一个,它也会使所有'#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')
            });
        } 
    } 
}

2 个答案:

答案 0 :(得分:0)

好吧,我通过定位它的子元素来获得它

$("#demo-1").bind("touchstart", function(e) {
            var $target = $(e.target);
            if ($target.is("p")) {
                $target.css('background-color', 'red')
            }
        });

答案 1 :(得分:0)

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

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

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