我想我可以正确解释一下。我有一个函数,我想用几个div上的onclick事件调用。
$scope.dataArray = []; //array for holding values from another function
$scope.myFunction = function(id) {
var val1 = id[0];
var val2 = id[1];
}
我想将此函数分配给我附加到此函数内的父级的div上的onclick。
$scope.appendDivs = function (someData) {
var result = someData; // an array
var parentContainer = document.getElementById('parent-container');
for( var i = 0; i < result.length; i++)
{
var div = document.createElement('div');
div.className = "child-element";
parentContainer.appendChild(div);
div.onclick = function() {
$scope.myFunction(result.id); //pass an array of data to myFunction
};
div.innerHTML = result[i].data1 + "<br>" + result[i].data2;
}
问题在于,当我单击div来激活onclick调用并调试以查看发生了什么时,$ scope.myFunction总是传递“result”的长度,其中没有定义任何内容。即长度为3的元素为0,1和2. myFunction试图查看结果[3]。有没有办法让每个div知道要传递给myFunction的元素?
答案 0 :(得分:0)
我通过将我的值捎带到div.id上来解决我的问题。我不需要任何东西的div的id,我也能够摆脱dataArray。所以现在我可以将我需要的值传递给myFunction,并且它是被点击的div的相应值。谢谢你们的时间!