1
   <!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/

问题:

  1. function(event),我知道这里事件的意思是:点击,但是点击对象是怎么把值传给这个参数的:事件呢?

  2. $('<div/>')
    .append('default ' + event.type + ' prevented')
    .appendTo('#log');
    

我知道append()and appendTo(),但仍然很难理解这条线, $('<div/>')意味着创建一个<div/>? 通常我只看到这种风格: $('div').append(),谁能给我解释一下这条线?谢谢。

4

4 回答 4

2

当事件触发时,参数的对象event由 jQuery 自动传递。

$('<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>
于 2013-06-24T09:45:31.150 回答
2
$('div').append('...')

这里的 'div' 选择器将搜索 DOM 中已经存在的所有 DIV 并将内容附加到它们。

$('<div/>').append('...')

在这里,我们创建包装在 jquery 对象中的新元素 DIV 并将内容附加到它。这与: $('<div>').append('...')$('<div></div>').append('...') 只是语法更改相同。

您仍然需要将新创建的元素添加到 DOM。通常,您可以使用.appendTo(elementInDOM)方法。

于 2013-06-24T09:47:04.173 回答
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');
于 2013-06-24T09:45:11.077 回答
1

第一的

event不仅意味着单击,还可以是任何事件,例如 keyup、keydown、mouseover、mouseout、

另外,如果要从单击事件中获取值,请使用$(this)

所有事件的列表

第二

$('div').append('text');

将附加文本to the选择器$('div'),在您的问题中,您正在创建一个 div,然后在其中附加一些显示该行的文本

$('<div/>').append('default ' + event.type + ' prevented')

然后appended#log

于 2013-06-24T09:47:23.473 回答