Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .show()在IE上不起作用_Javascript_Jquery_Internet Explorer_Internet Explorer 9 - Fatal编程技术网

Javascript .show()在IE上不起作用

Javascript .show()在IE上不起作用,javascript,jquery,internet-explorer,internet-explorer-9,Javascript,Jquery,Internet Explorer,Internet Explorer 9,我正在从事这个项目: 如果您转到左侧菜单上的Dyer dhe dritare,用Chrome和FF将其中一个元素(门或窗)拖动到右侧(桌子),我为该元素添加的3个选项将显示,因此:$(“p”,this.show()可以工作,但在IE9中,当我拖动一个元素时,它不会显示用于拖动、旋转或删除的选项!我不知道怎么了 事情就是这样发生的: $(".drag").draggable({ revert : 'invalid', helper : 'clone', conta

我正在从事这个项目: 如果您转到左侧菜单上的Dyer dhe dritare,用Chrome和FF将其中一个元素(门或窗)拖动到右侧(桌子),我为该元素添加的3个选项将显示,因此:
$(“p”,this.show()可以工作,但在IE9中,当我拖动一个元素时,它不会显示用于拖动、旋转或删除的选项!我不知道怎么了

事情就是这样发生的:

$(".drag").draggable({
  revert      : 'invalid', 
  helper      : 'clone',
  containment : 'desk',
  cursorAt    : { left:-11,top:-1 },

  //When first dragged
  stop        : function(ev, ui) {
    /*========================================================================*/
    var pos = $(ui.helper).offset();
    var left_   = ev.originalEvent.pageX - $("#desk").position().left;
    var top_    = ev.originalEvent.pageY - $("#desk").position().top;
    // get widht and height of the container div#desk element
    var w_ = $("#desk").width();
    var h_ = $("#desk").height();
    objName  = "#clonediv"+counter++;
    objNamex = "clonediv"+counter;
    $(objName).css({"left":left_,"top":top_});

    var gag =  0;
    $(objName).click(function () {
      $("p", this).show();
      $(this).addClass("selektume");
      $('.rotate_handle').unbind('click');
      $('.rotate_handle').click(function(){
        gag += 45;
        $('.selektume').rotate(gag+'deg');
      });
      $('.delete_handle').click(function() {
        $('.selektume').remove();
      });
      return false;
    });

    $(document).click(function () {
      $("p").hide();
      $(".lgutipT").removeClass("selektume");
    });

    //check if dropped inside the conteiner div#des
    if((left_ >= 0) && (left_ <= w_) && (top_ >= 0) && (top_ <= h_))
    {
      $(objName).css({"left":left_,"top":top_});

      // assign a z-index value
      zindex = left_ + top_;
      $(objName).css({"z-index":zindex});
      $(objName).addClass("lgutipT");
      //$(objName).addClass("ui-widget-content");

      $(objName).removeClass("drag");
      $(objName).append('<p><img class="handler"  src="images/move_button.png"><img class="rotate_handle" src="images/rotate_button.png"><img class="delete_handle" src="images/delete_button.png"></p>');
      $("p", this).show();
    }


    /*========================================================================*/

    //When an existiung object is dragged
    $(objName).draggable({
      containment : "#desk",
      handle      : ".handler",
      cursor      : "move"
    });
  }
});
$(“.drag”).draggable({
还原:“无效”,
助手:“克隆”,
遏制:“办公桌”,
光标:{左:-11,上:-1},
//第一次拖动时
停止:功能(ev、ui){
/*========================================================================*/
var pos=$(ui.helper.offset();
var left=ev.originalEvent.pageX-$(“#desk”).position().left;
var top=ev.originalEvent.pageY-$(“#desk”).position().top;
//获取container div#desk元素的宽度和高度
var w_35;=$(“#桌面”).width();
var h#=$(“#桌”).height();
objName=“#clonediv”+计数器++;
objNamex=“clonediv”+计数器;
css({“left”:left_,“top”:top_});
var-gag=0;
$(对象名)。单击(函数(){
$(“p”,this.show();
$(this.addClass(“selektum”);
$('.rotate_handle')。解除绑定('click');
$('.rotate_handle')。单击(函数(){
gag+=45;
$('.selektum')。旋转(gag+'deg');
});
$('.delete_handle')。单击(function(){
$('.selektum').remove();
});
返回false;
});
$(文档)。单击(函数(){
$(“p”).hide();
$(.lgutipT”).removeClass(“selektum”);
});
//检查是否落在容器分区内

if((left_>=0)&&(left_>=0)&&&(top)&是一个非常棘手的问题,因为没有关于jQuery UI如何在核心级别处理事件的好文档。解决方案是取消绑定并重新绑定单击事件。在IE中,单击事件的处理方式与其他浏览器不同。解决方案只是在完成所有操作后重新绑定单击事件(1/1000秒延迟)

我的解决方案是移动click事件,在拖动开始时添加一个解除绑定,并在重新绑定
$(文档)时添加一个
setTimeout()
。拖动完成后单击()
事件侦听器

查看下面的源以查看工作解决方案


复制HTML并将其粘贴到您的开发环境。

发布您正在使用的一些代码。我修复了代码上的缩进。我还删除了字符串上的转义字符。但是,我不确定为什么会出现这些字符。如果它们在您的实际源文件中,那就是一个问题。这是因为我使用PHP返回它们,以便这就是为什么我要逃避这些角色,你真的认为这是一个问题吗?我真的很抱歉,但我不明白我该怎么做,这对我有什么帮助吗?:啊,我复制并粘贴了错误的JSFIDLE,我用正确的链接更新了我的帖子。对不起!哦,没关系,只是你吓了我一跳:)我以为我不明白@MattLo,你说的“没有关于jQueryUI如何在核心级别处理事件的好文档”是什么意思?文档的意思是在人类可读的级别,大的描述。(比如jQueryDocs或PHP Docs)如果我通过内联描述阅读它是如何工作的,我会多花一个小时。对于jQuery UI如何在跨浏览器级别处理事件冒泡,是否有明确的定义/描述?