相关疑难解决方法(0)

如何在单击子锚点时阻止父级的onclick事件触发?

我目前正在使用jQuery使div可点击,在这个div中我也有锚点.我遇到的问题是,当我点击一个锚点时,两个点击事件都会被触发(对于div和锚点).如何在单击锚点时阻止div的onclick事件触发?

这是破碎的代码:

JavaScript的

var url = $("#clickable a").attr("href");

$("#clickable").click(function() {
    window.location = url;
    return true;
})
Run Code Online (Sandbox Code Playgroud)

HTML

<div id="clickable">
    <!-- Other content. -->
    <a href="http://foo.com">I don't want #clickable to handle this click event.</a>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery event-propagation

315
推荐指数
10
解决办法
29万
查看次数

如何订购与jQuery绑定的事件

假设我有一个Web应用程序,其中有一个页面可能包含4个脚本块 - 我写的脚本可以在其中一个块中找到,但我不知道哪个是由控制器处理的.

我将一些onclick事件绑定到一个按钮,但我发现它们有时按照我没想到的顺序执行.

有没有办法确保订单,或者你过去如何处理这个问题?

javascript jquery events

164
推荐指数
7
解决办法
10万
查看次数

onClick优先于javascript中的addEventListener?

现在,我有一个事件监听器,可以监听屏幕上的点击.屏幕上还有一个按钮.当我点击按钮时,事件监听器将在onclick之前执行.有没有办法让onclick有更高的优先级?

<script>
document.body.addEventListener('click',function(){alert('1');}, false);

function clicked() { 
    alert('2');
}
</script>
<button onclick="clicked()">Click this</button>
Run Code Online (Sandbox Code Playgroud)

单击该按钮也会触发事件处理程序.1显示在2之前,当我点击按钮时.我想要先显示2.

javascript onclick handler addeventlistener

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

如何将多个操作绑定到键盘事件

我正在尝试制作一个chrome扩展,修改Facebook聊天窗口的活动文本区域中的文本.但是我希望只有当用户按下回车键才能进行更改,这样当文本仍然在textarea中时文本不会改变.我希望它使用javascript发生,并让它感觉它发生在后台,虽然我希望它keydown在enter键的事件上被触发.

现在Facebook聊天窗口的textarea的相关JavaScript是:

<textarea class="blah" 
onkeydown="window.Bootloader && Bootloader.loadComponents(["control-textarea"], 
function() { TextAreaControl.getInstance(this) }.bind(this)); ">
</textarea>
Run Code Online (Sandbox Code Playgroud)

在我的扩展程序的JavaScript文件中.我keydown用这样的东西绑定事件:

//elem is bound to the focussed textarea object
elem.onkeydown = function(evt) {
              if(evt.keyCode == 13){
                 //Some javascript code I want to execute here...
               }
        };  
Run Code Online (Sandbox Code Playgroud)

我认为一旦用户按下该enter键,就会清除textarea并发出某种发布请求.所以我失去了我想用JavaScript修改的文本的范围.我通过按shift+ 检查了输入键绑定是否适用于我的扩展enter,并且它修改了文本没有问题.所以我的脚本运行正常.

但是我希望在清除textarea并发出post请求之前执行我的脚本.我只是不希望用户看到文本被修改.

我可以添加/修改Facebook使用的textarea的键绑定,如上面的google chrome扩展脚本中所示?非常感谢任何帮助.

javascript facebook keyevent google-chrome-extension

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