相关疑难解决方法(0)

在另一个元素下的元素上注册点击

我有一个元素在不透明度的元素下:0.5我希望能够点击.如何点击"穿过"最顶层的元素?

这是一个演示我的问题的例子.单击框以打开和关闭它们.您可以在jsbin上编辑它以试用您的解决方案.

如果您可以在悬停时切换框,则可获得奖励积分.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<title>Sandbox</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<style type="text/css" media="screen"> 
body { background-color: #000; } 
.box {width: 50px; height: 50px; border: 1px solid white} 
.highlight {background-color: yellow;} 
</style>
<script type="text/javascript">
var dthen = new Date();
$('<div id="past">').css({'height':  (dthen.getMinutes()*60)+dthen.getSeconds() +'px'
            ,'position': 'absolute'
            ,'width': '200px'
            ,'top': '0px'
            ,'background-color': 'grey'
            ,'opacity': '0.5'
            })
        .appendTo("#container");

setInterval(function(){
    dNow = new Date();
    $('#past').css('height', ((dNow.getSeconds()+(dNow.getMilliseconds()/1000))*50)%300 +'px');
},10)

 $(".box").click(function(){ …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

单击一个按钮可在另一个按钮上触发单击事件

我想点击按钮2来触发按钮1上的点击事件.

但是,当我尝试以下操作时,点击#2时没有任何反应:#1或#2没有警报.

HTML:

<div id="container">
<button id="button-1">Button 1</button>
<button id="button-2">Button 2</button>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#container').on( "click", '#button-1', function(e){
    alert('CLICKED 1');
});
$('#container').on( "click", '#button-2', function(e){
    $('#button-1').trigger(e);
    alert('CLICKED 2');
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/8RnBf/7/

而且,如果我在触发器之前发出#2警报,我最终会得到一个无限循环.

http://jsfiddle.net/8RnBf/6/

为什么这不按预期工作?


更新:

我应该说清楚:原始事件必须通过.从本质上讲,我们正在尝试做这里所做的事情,但是委托事件

jquery jquery-on

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

以编程方式触发jQuery-UI draggable的"拖动"事件

我试图drag在与jQuery-UI的draggable小部件连接之后立即在div上触发事件.我有一些代码在被拖动时会消失,我还想在页面加载后立即运行此代码.我有时在其他jQuery处理程序上使用这样的习惯用法:

$('.foo').on('bar', function() {
   console.debug('bar!');
}).trigger('bar');
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用draggable.这是我的代码:

var draggable = $('[draggable]').draggable({
   drag: function(event, ui) {
      //do some stuff
      console.debug(event);
   }
}).trigger('drag');
Run Code Online (Sandbox Code Playgroud)

drag当我将项目拖动处理程序被调用,而不是在页面加载.

可能相关的信息:

  1. 当我拖动项目时,控制台中显示的事件如下所示:

    jQuery.Event {
       type: "drag",
       target: div#myElementId.ui-draggable,
       currentTarget: document,
       delegateTarget: document,
       data: null,
       //lots of other properties
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我尝试了各种调整,但没有任何效果:

    • 使用jQuery.Event构造函数并手动设置上述属性
    • 指定我想要的确切元素 document.getElementById
    • 触发mousedownmousedown.draggable代替drag(这是基于我发现的一些变通方法代码)

  3. 是的,我意识到我可以单独定义处理程序.我想要这样做的部分原因是可以访问ui参数,这使我可以轻松获得元素的位置和偏移量.我可以通过其他方式找到它们,但这很烦人.我也很好奇为什么这不起作用.

  4. 搜索谷歌和搜索引擎优化没有解决方案,只是与我无关的解决方法,以及有关同一问题的其他投诉.来自jQUI团队的JörnZaefferer建议使用jQuery.simulate插件作为解决方法,因此可能无法实现.奇怪的是,它们不会与其他jQuery事件保持一致.

javascript jquery drag-and-drop jquery-ui

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

标签 统计

jquery ×3

javascript ×2

drag-and-drop ×1

jquery-on ×1

jquery-ui ×1