小编Han*_*com的帖子

jQuery + stopPropagation:从父选择器中排除子元素

基于接受的答案的最终工作代码

        $('#photo-upload, #photo-upload .close').click(function(){
            $('#photo-upload').removeClass('show');
        });

        $('#upload-button').click(function(){
            $('#photo-upload').addClass('show');
        });

        $('#form-window').click(function(e){
              e.stopPropagation();
        });
Run Code Online (Sandbox Code Playgroud)

原始问题

我有一个带关闭按钮的模式窗口。该窗口由链接触发a#upload-button#photo-upload是一个 100% 高度 + 宽度的固定 div。#form-window是一个 200 像素 x 200 像素的框,在其内部水平和垂直居中#photo-upload

<div id="photo-upload">
    <div id="form-window">
        <!-- Content -->
        <a class="close"></a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

关闭按钮的位置绝对位于右上角。我想设置一个点击功能,以便在模态窗口外点击关闭窗口,并且点击关闭按钮关闭窗口。但是这样点击窗口本身不会关闭窗口。

我目前的代码是:

$('#photo-upload').click(function(e){
    if(!$(e.target).is('#form-window')){
      return false;
    } else {
        $(this).removeClass('show');
    }
});

$('#form-window').live("click",function(e){
    if(!$(e.target).is('a.close')){
      e.stopPropagation();
    }
});


$('#upload-button').live("click", function(){
    $('#photo-upload').addClass('show');
});

$('#photo-upload .close').live("click", function(){
    $('#photo-upload').removeClass('show');
});
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,当我单击这些元素中的任何一个时没有任何反应,并且无法关闭 div。我究竟做错了什么?

如何在父元素上使用 stopPropagation() 但排除子元素(在我的情况下,a.close)。

jquery click parent-child

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

jQuery如何测试这个<a>是否具有href属性

很简单的问题......

对于

$('a')

如何测试该jQuery对象是否具有HREF属性?我正在寻找可以返回true或false的东西,我可以在if()语句中使用它.

谢谢!

jquery jquery-selectors

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

在IE8中将window.onbeforeunload设置为undefined会导致"未实现错误

            if(!$('fieldset.quote-step4').hasClass('show')) {
                window.onbeforeunload = function() {
                    return "Are you sure you want to leave the quote request page? This will reset the form.";
                }
            } else {
                window.onbeforeunload = undefined;
            }
Run Code Online (Sandbox Code Playgroud)

我在私有函数内部的脚本中有上述内容,导致ie8中出现"未实现"错误.

导致错误的特定行是: window.onbeforeunload = undefined;

从我在其他问题中读到的内容window应该被声明为一个局部变量来解决这个问题 - 但我不确定如何.

任何人都可以向我解释这个错误和可能的解决方案吗?

谢谢!

javascript jquery internet-explorer internet-explorer-8 onbeforeload

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

Kinetic JS:我可以为形状添加多个名称吗?

我有以下例子来创建一个多边形:

            var poly = new Kinetic.Polygon({
                x: coorx,
                y: coory,
                points: coords,
                alpha: 0,
                fill: colors[Math.floor(Math.random() * colors.length)],
                name: myname
            }); 
Run Code Online (Sandbox Code Playgroud)

我想要做的是有两个类名,例如"rect-1"和"rect-2".我希望其中一些形状具有其中一个类,一些将同时具有这两个类.

这一点的关键是能够使用get()语法以一种方式转换某些形状,例如以不透明度转换,以及以其他方式转换其他形状,例如:

是否可以为高级选择赋予形状多个"类"名称,如我在此描述的那样?

谢谢!

    var shapes = stage.get(".rect-1");

    for(var n = 0; n < shapes.length; n++) {
        var shape = shapes[n];

        shape.transitionTo({
            alpha: (opacities[Math.floor(Math.random() * opacities.length)] * 1.5) + .7,
            duration: 2
        });                 
    }

    var shapes = stage.get(".rect-2");

    for(var n = 0; n < shapes.length; n++) {
        var shape = shapes[n];

        shape.transitionTo({
            offset: {
                x: 10,
                y: …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas kineticjs

0
推荐指数
1
解决办法
1461
查看次数