GVKun编程网logo

javascript – 覆盖以前绑定的点击事件(js覆盖方法)

11

对于想了解javascript–覆盖以前绑定的点击事件的读者,本文将提供新的信息,我们将详细介绍js覆盖方法,并且为您提供关于IE8的JavaScript点击事件(onclick)不兼容的解决方法_j

对于想了解javascript – 覆盖以前绑定的点击事件的读者,本文将提供新的信息,我们将详细介绍js覆盖方法,并且为您提供关于IE8的JavaScript点击事件(onclick)不兼容的解决方法_javascript技巧、javascript – Angular JS:为什么我的点击事件会被触发两次?、javascript – d3.js关于“点击”事件处理运行功能没有点击事件、javascript – Jquery – IE6中选择下拉列表中的点击事件问题的有价值信息。

本文目录一览:

javascript – 覆盖以前绑定的点击事件(js覆盖方法)

javascript – 覆盖以前绑定的点击事件(js覆盖方法)

当我将此代码与id为“foobar”的元素一起使用时:

$("#foobar").click(function () { alert("first"); });
$("#foobar").click(function () { alert("second"); });

我得到两个警报:“第一”和“第二”秒.

如何指定单击事件,该事件还会清除附加到元素的任何先前单击事件?我想要最后一个$(“#foobar”).点击(…)删除任何以前绑定的事件.

解决方法

您可以取消绑定已附加到该元素的事件,然后附加第二个事件处理程序,因此它将是唯一的一个(请注意unbind方法).

$("#foobar").unbind("click").click(function() { alert("second"); });

IE8的JavaScript点击事件(onclick)不兼容的解决方法_javascript技巧

IE8的JavaScript点击事件(onclick)不兼容的解决方法_javascript技巧

博客园闪存分页是用JavaScript生成的,今天发现在IE8下点击页码不能翻页,翻页操作是在当前页码的onclick事件中进行的。

开始代码是这么写的:

复制代码 代码如下:

var a = document.createElement("a");
a.setAttribute("onclick", this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");");

由于IE8不支持setAttribute方法,这里添加的onclick事件处理程序并未添加上。

后来改为jQuery的attr方法:

复制代码 代码如下:

$(a).attr("onclick", this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");");

这样虽然添加上去了,但不管怎么点击,onclick事件处理程序就是不执行,Chrome与Firefox都没这个问题。

最终通过下面的代码解决了问题:

复制代码 代码如下:

var js = this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");";
a.onclick = function() { eval(js); }

javascript – Angular JS:为什么我的点击事件会被触发两次?

javascript – Angular JS:为什么我的点击事件会被触发两次?

我有以下代码.它循环遍历 JSON以生成嵌套的ul列表.我有一个click事件,它执行绑定到锚标记的函数toggleNav().我不知道为什么click事件被绑定到元素两次.另外我是棱角分明的新手,是否有一个文件解释了这个概念?谢谢!
define([
'/assets/angularapp/AppDirectives.js','highstock'
],function (directives) {
directives.directive('collection',function () {
    return {
        restrict: "E",//declare by element
        replace: true,scope: {
            collection: '='
        },template: "<ul class=\"nav nav-list tree\"><member ng-repeat=\"member in collection\" member=\"member\"></member></ul>"
    }
})

directives.directive('member',function ($compile) {

    return {
        restrict: "E",replace: true,scope: {
            member: '='
        },template: "<li ng-show=\"member.open\"><span><input type=\"checkBox\" ng-model=\"member.selected\" class=\"sideChkBox\"><a class=\"tree-toggle\" ng-click=\"toggleNav()\"><i class=\"icon-chevron-right\"></i>{{member.data}}</a></span></li>",controller: function($scope,$element){
            $scope.toggleNav = function(){
                angular.forEach($scope.member.children,function(child,key){
                    if(child.open==true){
                        alert("a")
                        child.open=false;
                    } else {
                        child.open=true;
                        alert("b")

                    }

                })

            }
        },link: function (scope,element,attrs) {
            if (angular.isArray(scope.member.children)) {
                 element.append("<collection collection='member.children'></collection>");
                $compile(element.contents())(scope)
            }
        }
    }
})

解决方法

这是因为你正在编译element.contents(),包括< a>使用ng-click,应该已经编译过了.在您调用手动编译时,它会再次编译.

你可以解决这个问题:

...
    if (angular.isArray(scope.member.children)) {
        var newMemEL = angular.element("<collection collection='member.children'></collection>");
        element.append(newMemEL);
        $compile(newMemEL)(scope);
    }
    ...

看起来你正在尝试创建一个树视图,在这种情况下,最好使用ngInclude而不是创建自定义指令,看看这个plunker,注意它不适用于Angular 1.2.0rc1,因为这个issue

javascript – d3.js关于“点击”事件处理运行功能没有点击事件

javascript – d3.js关于“点击”事件处理运行功能没有点击事件

我正在为我的d3可视化进行鼠标点击事件处理:
fooCircle.on("click",fooFunction("barParameter"));

我的问题是该函数运行时没有我必须单击该元素.我知道这是因为我把print语句放在函数中.

有趣的是,当我将函数更改为不是接受任何参数的函数时,函数的行为应该是它应该的,这意味着当我单击相应的元素时它会运行:

fooCircle.on("click",fooFunction);

解决方法

有人帮我解决了这个问题.解决方案是:
fooCircle.on("click",function () {fooFunction("barParameter"); });

这样,函数被传递给on函数,而不是函数的结果.

javascript – Jquery – IE6中选择下拉列表中的点击事件问题

javascript – Jquery – IE6中选择下拉列表中的点击事件问题

我遇到了jquery函数的问题.它适用于FF但不适用于IE 6.我希望在单击选择下拉列表中的任何选项时触发该功能.这是我的功能的开始:

$('#titleSelect option').click( function() {    
    alert("title clicked");
    ......
});

这是我的下拉列表:

<select id="titleSelect">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>

因此在FF中,警报被触发,但在IE中却没有. IE识别select上的click事件是否存在任何问题?如果有的话,是否有任何解决方法.

解决方法:

为什么你不使用onChange事件?喜欢:

$('#titleSelect').change( function() {    
alert("title "+$(this).val()+" clicked");
......
});

您可以在此处找到jQuery更改事件文档:

http://docs.jquery.com/Events/change#fn

我们今天的关于javascript – 覆盖以前绑定的点击事件js覆盖方法的分享已经告一段落,感谢您的关注,如果您想了解更多关于IE8的JavaScript点击事件(onclick)不兼容的解决方法_javascript技巧、javascript – Angular JS:为什么我的点击事件会被触发两次?、javascript – d3.js关于“点击”事件处理运行功能没有点击事件、javascript – Jquery – IE6中选择下拉列表中的点击事件问题的相关信息,请在本站查询。

本文标签:

上一篇javascript – 如何检查浏览器是否在MAC上运行?(js怎么判断浏览器)

下一篇Javascript是否对网站的印刷版有影响?(javascript在网页设计中的作用)