2012-05-02 14 views
1

如何使用jquery更改正文标签的html。使用jQuery更改正文html

我有这样的身体标记<body>当我点击一个按钮,身体必须改变,以
<body ontouchmove="BlockMove(event);>

我怎样才能使与jqueryjavascript

+1

你真的想更改HTML还是要绑定事件处理程序? –

回答

5
$('#buttonId').click(function(){ 
    $('body').attr('ontouchmove', "BlockMove(event)") 
}) 

甚至更​​好,不改变DOM结构,正好回调绑定到事件:

$('#buttonId').click(function(){ 
    $('body').bind('touchmove', BlockMove); 
}); 
+0

+1只是打字的事件处理程序版本,你打我:) –

+1

你不想在“绑定”的参数“on”:'.bind('touchmove'BockMove(event)); ' –

+0

@JamesAllardice。真正。固定。谢谢。对我感到羞耻。 – gdoron

0

尝试这种(未经测试的代码):

$(body).attr("ontouchmove","blockMove(event)"); 
0

我认为你可以通过点击按钮将事件与身体绑定为:

$('button').click(function(){ 
    $("body").bind('touchmove', BlockMove); 
}); 
+0

[this comment](http://stackoverflow.com/questions/10411831/change-body-html-with-jquery/10411877#comment13432428_10411877)在这里也是如此, – gdoron

+1

也有一个无用的封闭... – Alnitak

+0

**第一个注释仍然是真的...... **'(“body”)。bind('ontouchmove',BlockMove);'=>'$(“body”)。bind('touchmove',BlockMove); ' – gdoron

2

有没有需要改变的真正属性 - 只需添加功能参考直接到身体标记:

$('#button').click(function() { 
    document.body.ontouchmove = BlockMove; 
}); 

或jQuery的方式:

$('#button').on('click', function() { 
    $('body').on('touchmove', BlockMove); 
}); 

注意,在后一种情况下,你需要使用ev.originalEvent来访问原始事件对象,而不是jQuery的规范化事件,它不知道触摸属性。

在jQuery的版本中,你还需要确保这种情况不会发生超过一次,否则BlockMove将得到添加到事件处理链一遍又一遍地为每个按钮按下。在DOM0版本中并不重要,因为这一个会覆盖事件处理程序。