Angular动态生成的ID定位事件

时间:2015-07-30 17:13:40

标签: javascript jquery angularjs angularjs-scope

使用jQuery,我可以找到并以ID开头“conditionValue”

$(document).on('focus', "[id^=conditionValue]", function (event) {
    // code
});

如何在Angular中找到以“conditionValue”开头的ID。我可能想要一个按钮点击事件。

因此,这不会起作用,因为它只会以conditionValue开头,更像conditionValue434

以下代码需要修改。

$scope.conditionValue= function () {
    // code 
};

2 个答案:

答案 0 :(得分:3)

如果您打算处理click事件,AngularJS方法是使用ng-click指令。

因此,您的HTML代码将是:

<div id="conditionValue434" data-ng-click="myClickEventHandler($event)"></div>

然后在您的控制器中,您将定义您的点击事件处理程序:

$scope.myClickEventHandler = function (evt) {
    //evt is the jQuery event object or the jQLite object
    //Some code here
};

但是,如果您要执行的操作是将click事件处理程序添加到可能存在或不存在的DOM元素,并且您特别需要侦听DOM元素的事件,则AngularJS方法是创建{{ 3}}。
上面提到的参考资料有很好的例子可以帮助你开始。

答案 1 :(得分:0)

所选答案是正确的。我建议你不要用evt使代码变得神秘,尽管“事件”并没有错,因为它最清楚,甚至“clickEvent”都非常具体。世界各地都有过多的Terse代码。

HTML:

<button id="conditionValue{{someThing.id}}" data-ng-click="conditionValueClickEventHandler($event)" class="btn-yellow">Save</button>

controller.js

$scope.conditionValueClickEventHandler = function (event) {
    console.log(event.target.id);  // F12 in browser to see 
    //alert(event.target.id)   // if you want to use an alert...
};

请注意,当您想要获取ID值时,您将需要使用以下代码:

event.target.id   (pending that event is the incoming parameter)