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