小编Ten*_*man的帖子

了解PreventDefault和DefaultPrevented如何使用自定义事件

嘿大家我只是在这里看一下这个引导Jquery代码,在carasoul.js中,我很难理解defaultprevented和preventDefault如何使用自定义事件.看一下bootstrap代码:

var relatedTarget = $next[0]
var slideEvent = $.Event('slide.bs.carousel', {
  relatedTarget: relatedTarget,
  direction: direction
})
this.$element.trigger(slideEvent)
if (slideEvent.isDefaultPrevented()) return 
Run Code Online (Sandbox Code Playgroud)

看到这里检查 if (slideEvent.isDefaultPrevented()) return基本上我不明白如何isDefaultPrevented())使用自定义事件,我尝试在这里创建一个演示:

var slideEvent = $.Event('slide');

$('a').on('click' , function(e){
    e.preventDefault(); 
    $(this).trigger(slideEvent);
})

$('a').on('slide' , function(e){
    e.preventDefault();
})

if (slideEvent.isDefaultPrevented()) {
        console.log('is default prevented');
}  
Run Code Online (Sandbox Code Playgroud)

但不知何故下面的代码块从来没有console.log的:

if (slideEvent.isDefaultPrevented()) {
        console.log('is default prevented');
}  
Run Code Online (Sandbox Code Playgroud)

也许我这样做是错误的.有人可以解释一下吗?我想要做的就是了解PreventDefault()和DefaultPrevented如何使用自定义事件,我想要一个有效的演示,以便我能更好地理解.

这是我尝试过的一个FIDDLE

jquery

7
推荐指数
1
解决办法
5560
查看次数

nth-child()选择器仅适用于少数几个元素

嘿家伙我有以下标记::

<div class="heading-container">
        <p class="stroke">Who we</p>
        <h2 class="section-title extreme-bold">Contact us</h2>
        <p class="stroke"></p>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我可以使用以下选择器选择第一个.stroke:

.heading-container .stroke:nth-child(1){
    max-width: 200px;
}
Run Code Online (Sandbox Code Playgroud)

但以下不适用于第二个中风课:

.heading-container .stroke:nth-child(2){
    max-width: 200px;
}
Run Code Online (Sandbox Code Playgroud)

但以下再次有效:

.heading-container .stroke:nth-child(3){
    max-width: 200px;
}
Run Code Online (Sandbox Code Playgroud)

现在为什么价值3适用于第二个第n个孩子的选举?

对于第二个孩子来说,以下是不合适的:

.heading-container .stroke:nth-child(2){
    max-width: 200px;
}
Run Code Online (Sandbox Code Playgroud)

css css-selectors

4
推荐指数
1
解决办法
144
查看次数

强迫这与功能绑定

我刚刚浏览了jBox.js的代码并遇到了以下几行代码:

jQuery(document).on('keyup.jBox-' + this.id, function(ev) {
    (ev.keyCode == 37) && this.showImage('prev');
    (ev.keyCode == 39) && this.showImage('next');
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

看看这里的代码,这个家伙似乎强迫性地绑定函数的值this,我对这个模式有几个问题.

  • 这是某种设计模式吗?

  • 作者试图通过绑定大多数方法来实现this什么?

  • 例如,采用上面的代码片段,作者试图通过绑定函数来实现什么this.(我的猜测是绑定功能类似于jQuerys $ .proxy吗?在新函数定义中维护它的值.).

javascript jquery

2
推荐指数
1
解决办法
52
查看次数

返回false不使用自定义事件

我是Jquery自定义事件的新手,只是阅读文档而我决定制作我自己的自定义事件,如下所示:

HTML:

<a href="http://stackoverflow.com/">Hello</a>
Run Code Online (Sandbox Code Playgroud)

JQuery:

$(function () {

    // kabhoom = $.Event('click');  

    $('a').on( 'kabhoom' , function(e){
        console.log(e.target);
        return false;
    })

    $('a').click(function(){
        $(this).trigger('kabhoom');
    })

});
Run Code Online (Sandbox Code Playgroud)

编辑::总结我在上面的代码中的难度returnfalse不起作用!用户仍然可以导航到其中的链接a.

现在这里的glinch是返回false或者preventDefault在这里工作,为什么?

我尝试了一下,当我将逻辑转移到

$('a').click(function(){
    $(this).trigger('kabhoom');
    return false;
})
Run Code Online (Sandbox Code Playgroud)

它工作,但在我的自定义事件监听器,我的代码不起作用.谁能告诉我为什么?我对Jquery如何工作更感兴趣,这就是我问这个问题的原因!.

javascript jquery

-1
推荐指数
1
解决办法
223
查看次数

标签 统计

jquery ×3

javascript ×2

css ×1

css-selectors ×1