为了账号安全,请及时绑定邮箱和手机立即绑定
  • 具体能触发submit事件的行为:

    • <input type="submit">

    • <input type="image">

    • <button type="submit">

    • 当某些表单元素获取焦点时,敲击Enter(回车键)


  • keydown 是在按之前判断(当时text还没有内容),触发一次空,当下一次按键时,就触发上一次输入的内容,所以就少一个。

  • e.target.value的意思是找到发生的事件绑定的对象的value的值,也就是这里的.target1他的value值

  • <!--此处有图片-->

    了不起的bug大师

    DIV直接使用“focus”和“blur”两个方法是无效的,需添加tabindex="0"或者contenteditable="true"属性。
    设置div为可编辑状态,则可点击获取焦点,同时div的内容也是可以编辑的;如:
    <div contenteditable="true">11111111111111</div>
    设置div的tabindex,此时div的内容是不可编辑的;如:
    <div tabindex="0">11111111111111</div>

    PS:设置tabindex属性,按键盘Tab键可让其获取焦点,其中tabindex的值越小在tab键切换的时候就会首先聚焦。


  • 当一个元素绑定focusin()后,自身或者其内部任何一个元素获得焦点的时候,就会触发focusin()事件;
    focus()只能在自身获得焦点的时候,才会触发focus()事件。

  • mouseover 事件要考虑到事件冒泡,也就是a的父级元素也有绑定mouseover事件的话,那么a的事件触发的同时也会触发父级元素的事件

  • $(".aaron1").mousemove(function(e) {        $(this).find('p:last').html('移动的X位置:' + e.pageX)    }) pageX() 属性是鼠标指针的位置,相对于文档的左边缘。 pageY() 属性是鼠标指针的位置,相对于文档的上边缘。

  • 测试二是先选中p标签,然后设置一个点击事件,调用函数,该函数的功能是弹出一个窗口显示文本节点的内容,再然后选中第二个button按钮,也设置夜歌点击事件,点击该按钮会调用上面的函数。测试三是先设置一个函数data(),该函数的功能是弹出一个窗口显示e的值,然后在设置一个函数a(),该函数先选中第三个button,然后绑定一个点击事件,点击之后将1111传递给data函数的e,然后a()表示调用该函数

  • Dom 3 5-2
    只有body内的跟选择器匹配的元素,才会触发事件回调函数,不匹配的只是往上继续冒泡.


  • <script type="text/javascript">


        //点击更新次数

        $("button:first").click(function(event,bottonName) {

            bottonName = bottonName || 'first';

            update($("span:first"),$("span:last"),bottonName);

        });


        //通过自定义事件调用,更新次数

        $("button:last").click(function() {

            $("button:first").trigger('click','last');

        });


        function update(first,last,bottonName) {

            first.text(bottonName);

            var n = parseInt(last.text(), 10);

            last.text(n + 1);

        }

        </script>


  • trigger事件不能实现envent,但是可以使用triggerHandler方法来实现event。

    查看代码快照
  • trigger自动执行是会有冒泡发生的,点击button:first时候trigger自动执行a的绑定事件click(就是点击<a>),trigger是会冒泡的!所以点击了<a>标签就点击了它所在的<div>,<div>有alert的事件就会发生,聚焦事件就不说了;

    再说一下,triggerHandle,他不会发生冒泡,所以当点击button:last时候呢,就不会出现alert啦,就仅仅是点击了<a>标签和聚焦操作。


  • trigger事件:

    触发事件函数,比如你点击了按钮B,B上绑着trigger按钮A的函数,那么按钮A的函数被触发

  • triggerHandler与trigger的用法是一样的,重点看不同之处:

    • triggerHandler不会触发浏览器的默认行为,.triggerHandler( "submit" )将不会调用表单上的.submit()

    • .trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素

    • 使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡。 如果它们不是由目标元素直接触发的,那么它就不会进行任何处理

    • 与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回 undefined

     


  • parseInt() 函数可解析一个字符串,并返回一个整数。”他的作用就是解析出字符串中第一个出现的数字,第一个参数就是要求解析的字符串,第二个参数是对第一个参数的补充,是数字几就代表第一个参数中的数字是什么进制。例如:parseInt("11",2); //返回 3 (2+1)  就是说  把“11”当做二进制看然后解析为十进制数字“3”.

  • parseInt(数字, 进制位);

    bottonName = bottonName || 'first';

    这句话怎么理解?

        function update(first,last,bottonName) {

            first.text(bottonName);

            var n = parseInt(last.text(), 10);

            last.text(n + 1);

        }

    这个update函数能不能解释一下

    如果存在bottonName,则bootonName=bottonName,否则,bottonName=first

    update既不是jquery函数也不是原生函数,是自定义函数,你可以自己随意改动他的参数跟功能,只要调用的时候保持名称一致就可以

    function update(first,last,bottonName) {         first.text(bottonName);        // 将传递过来的first参数文本改为bottonName         var n = parseInt(last.text(), 10);        //获取当前last.text的文本内容,10进制取值,建立变量n,赋值为所取得的值。         last.text(n + 1);    } // 将传递进来的last参数文本内容修改为n+1,实现点击数按照实际点击数增加。

  • 第一个click没有阻止冒泡,那为什么它只冒泡到外层div,没有冒泡到body

    因为他冒泡到div层 就被div 层点击事件 event.stopPropagation() 阻止冒泡

    event.stopPropagation() 方法:阻止事件冒泡

    事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数

    就是说不会触发到div的父级以上,如果是在span绑定的click后面加的话div都不会显示被点击


  • this指触发事件的元素,无论你鼠标点击在什么位置,触发事件的元素都是ul,所以this指ul,但是e.target指鼠标的焦点元素,如果你点击到了ul内部的li,则e.target指的就是li,但是如果你点击的是ul其他的非li部分,则this和e.target是一样的。

    如果不是通过冒泡产生的事件,则this和e.target没有区别。

    this是可以变化

    但event.target不会变化,它永远是直接接受事件的目标DOM元素。


  • $( "button" ).on( "click", {  name: "慕课网" }, greet );这句话怎么理解?

    当在"button" 上 点击的时候, 将name为 慕课网 的参数传递给 greet 函数。

    function greet( event ) {
     alert( "Hello " + event.data.name ); //Hello 慕课网
    }

    然后, 在greet函数中, 通过事件,触发该函数, 

    实际上, event.data 就是  " name: "慕课网" "

    然后, 在这里面有个name的自定义属性为 "慕课网"


    老师的解释是: 可以通过第二参数(对象),当一个事件被触发时,要传递给事件处理函数的


  • 在input元素上绑定keydown事件会发现一个问题:

    每次获取的内容都是之前输入的,当前输入的获取不到

    keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本

    keypress事件与keydown和keyup的主要区别

    • 只能捕获单个字符,不能捕获组合键

    • 无法响应系统功能键(如delete,backspace)

    • 不区分小键盘和主键盘的数字字符

    KeyPress主要用来接收字母、数字等ANSI字符,而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键。诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。

  • down事件返回时的value

    用console和e.target.value.length测试后应该是 

    value值是在keydown事件之后和在keyup事件之前才传递过去的 所以在第一个框里输入第一次字符是不显示的而在第二个框里是显示的


首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
1、有HTML/CSS基础 2、有JavaScript基础
老师告诉你能学到什么?
1、jQuery的基础语法 2、jQuery事件处理
意见反馈 帮助中心 APP下载
官方微信