<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<a href="http://jquery.com">default click action is prevented</a>
<div id="log"></div>
<script>
$("a").click(function(event) {
event.preventDefault();
$('<div/>')
.append('default ' + event.type + ' prevented')
.appendTo('#log');
});
</script>
</body>
</html>
以上代码摘自:http://api.jquery.com/event.preventDefault/
问题:
function(event)
,我知道这里的事件意味着:点击,但点击对象如何将值传递给此参数:event?
$('<div/>')
.append('default ' + event.type + ' prevented')
.appendTo('#log');
我知道append()
和appendTo()
,但仍然很难理解这一行,$('<div/>')
表示创建<div/>
?通常我只会看到这种风格:$('div').append()
,任何人都可以向我解释这一行吗?感谢。
答案 0 :(得分:2)
当触发事件时,jQuery会自动传递event
参数的对象。
$('<div/>')
将创建一个新的<div></div>
元素。
.append('default ' + event.type + ' prevented')
会在新创建的div中添加“默认点击已阻止”,因此它会变成<div>default click prevented</div>
.appendTo('#log');
会将上面的整个div附加到#log
元素,即如果您将#log
元素视为<div id="log"></div>
,则它将变为
<div id="log">
<div>default click prevented</div>
</div>
答案 1 :(得分:2)
$('div').append('...')
这里'div'选择器将搜索已经在DOM中的所有DIV并将内容附加到它们。
$('<div/>').append('...')
在这里,我们创建包含在jquery对象中的新元素DIV并向其追加内容。
这与:$('<div>').append('...')
或$('<div></div>').append('...')
只是语法更改相同。
您仍然需要向DOM添加新创建的元素。通常,您可以使用.appendTo(elementInDOM)
方法。
答案 2 :(得分:1)
这是创建div元素的快捷方式,其中包含append()语句的文本。此DIV将附加到您的#log元素。 另一个例子供您理解:
$('<div />').html('This is a simple text-string').appendTo('body');
长形将/可能是:
$('<div>After this point comes a new string:<br /></div>').html('This is a simple text-string').appendTo('body');
答案 3 :(得分:1)
<强>第一强>
event
不仅意味着点击,它可以是任何事件,如keyup,keydown,mouseover,mouseout,
另外,如果想要从点击的事件中获取值,请使用$(this)
所有Events
的列表<强>第二强>
$('div').append('text');
会附加文字to the
selecter $('div')
和
在你的问题中,你正在创建一个div,然后在其中附加一些显示行
$('<div/>').append('default ' + event.type + ' prevented')
然后是appended
到#log