原生js如何绑定a连接点击事件?

JavaScript013

原生js如何绑定a连接点击事件?,第1张

可以用js的事件委托啊。

比如你的分页生成的代码会插入到一个<div id="pager"></div>里,在生成html片段时为a设置一个属性用来表示页数,如:<a href="#" data-page="1">第1页</a>

事件委托的js代码如下:

$('#pager').delegate('a', 'click', function(e){

e.preventDefault() //阻止a的默认事件

var page = $(this).data('page') //从当前a标签属性中取出页码

//处理分页,如果是跳转:

location.href = "/pagename.php?page=" + page

//如果是异步取分页数据:

var page_api = '/pagedata.php?page=' + page

$.get(page_api, function(data, textStatus, jqXHR){

//使用ajax获取数据

//拼装数据并填充到数据显示区:

$('#list-container').append( createHTML(data) )

//重新生成分页区

createPager( page )

})

})

function createHTML(data){

//拼装数据的函数

}

function createPager(curPage){

//生成分页的函数

var tpl = '<a href="#" data-page="{#index}">第{#index}页</a>'

//...

}

在 angular 项目开发中 不建议这么弄,当然 如果有些引入的库 只能这样触发的话,还是有办法解决的。

首先在 控制器外侧,也就是js 的最外侧定义一个变量, 然后在当前控制器中 给该变量赋值为一个函数,该函数调用 控制器中 ng-click 之前绑定的回调函数 定义的这个函数使用onclick调用即可     比如:

<button ng-click="method_angular()">test</button>  

<button id="btn" onclick="method()">test</button> // 第一个按钮 是使用ng-click执行

// 第二个按钮是 使用onclick 执行

// 也可以使用jquery 给button 绑定事件执行

var method 

app.controller("testRoute",["$scope",function($scope){

    $scope.method_angular = function(){

        console.log(111)

    }

    method = function (){

        $scope.method_angular()

    }

    $("#btn").click(function(){

        $scope.method_angular()

    })

})