带参数的Onclick导致javascript语法错误

带参数的Onclick导致javascript语法错误,javascript,jquery,html,openlayers-3,Javascript,Jquery,Html,Openlayers 3,当单击id为“elem”的元素时,我得到了“uncaughtsyntaxerror:意外标识符”。你能告诉我怎么修理这个吗 formulaireDB.allDocs({ include_docs: true }).then(function(result) { for (x in result.rows) { docFeature = result.rows[x].doc; coord_nv = [docFeature.geometry.coor

当单击id为“elem”的元素时,我得到了“uncaughtsyntaxerror:意外标识符”。你能告诉我怎么修理这个吗

formulaireDB.allDocs({
    include_docs: true
}).then(function(result) {

    for (x in result.rows) {
        docFeature = result.rows[x].doc;
        coord_nv = [docFeature.geometry.coordinates[0], 
                    docFeature.geometry.coordinates[1]];
         position = to3857(coord_nv);

        map.addOverlay(new ol.Overlay({
            position: ol.proj.transform(
                [docFeature.geometry.coordinates[0],
                docFeature.geometry.coordinates[1]],
                'EPSG:4326',
                'EPSG:3857'),
                 element: $('<img id="elem" onclick="clickmarker(' 
                           + result + ',' + x  + ')" src="./img/pin32.png">')
        }));
    }
}).catch(function(err) {
    console.log(err);
});

}

function clickmarker(rt, ind) {
    var res = rt.rows[ind].doc.geometry.coordinates;
    console.log(res);
}
formulaireDB.allDocs({
包含文档:true
}).然后(函数(结果){
for(result.rows中的x){
docFeature=result.rows[x].doc;
coord_nv=[docFeature.geometry.coordinates[0],
docFeature.geometry.coordinates[1]];
位置=to3857(协调内华达州);
map.addOverlay(新ol.Overlay({
职位:ol.proj.transform(
[docFeature.geometry.coordinates[0],
docFeature.geometry.coordinates[1]],
‘EPSG:4326’,
‘EPSG:3857’,
元素:$('')
}));
}
}).catch(函数(err){
控制台日志(err);
});
}
功能点击标记(rt、ind){
var res=rt.rows[ind].doc.geometry.coordinates;
控制台日志(res);
}

在执行catch功能后,您有一个额外的支架。试试这个:

formulaireDB.allDocs({
包含文档:true
}).然后(函数(结果){
for(result.rows中的x){
docFeature=result.rows[x].doc;
coord_nv=[docFeature.geometry.coordinates[0],docFeature.geometry.coordinates[1];
位置=to3857(协调内华达州);
//添加标记
map.addOverlay(新ol.Overlay({
职位:ol.proj.transform(
[docFeature.geometry.coordinates[0],docFeature.geometry.coordinates[1]],
‘EPSG:4326’,
‘EPSG:3857’
),
元素:$('')
}));
}
}).catch(函数(err){
控制台日志(err);
});
功能点击标记(rt、ind){
var res=rt.rows[ind].doc.geometry.coordinates;
控制台日志(res);

}
您正在将
结果
连接到字符串,并将其作为此行中的对象丢失:

element: $('<img id="elem" onclick="clickmarker(' + result + ',' + x  + ')" src="./img/pin32.png">')
元素:$('')
您可能需要在创建click listener后添加它,而不是在线添加

例如

element: $('<img...>').on('click',function(){ clickmarker(result,x); });
元素:$('').on('click',function(){clickmarker(result,x);});

开头少了一行,我的坏:
函数ShowFormulaires(){…}
在捕获部分之后结束谢谢!这基本上解决了这个问题,但它必须在单独的一行
$(“#elem”).on('click',function(){clickmarker(result,x);})
如果您将代码的格式设置得更好一点,而不是将这么多内容传递到构造函数中,那么您可能会发现更多错误。创建变量来表示它们,然后传递它们。它将使您和许多其他开发人员的生活更加轻松