簡體   English   中英

Javascript JQuery - 使用帶參數的事件創建動態按鈕

[英]Javascript JQuery - dynamic button creation with events with parameters

我正在嘗試使用分配給它們的事件在html中為頁面創建和附加按鈕,這樣:

var mdata = JSON.parse(data);
mdata.forEach(function(k) {
    $("#routesPage").append("<button class='accordion' onclick='setRoute("+k._id.$id+")'>"+k.nombre+"</button>");
        routesArray[k._id.$id]=k;
    });

以前我正在調用一個PHP服務,它給我一個MongoDB數據庫的數據,對於每個數據,我想創建一個帶有指定變量的按鈕並調用setRoute()。 k._id。$ id是一個字符串,格式正確。 我收到這個錯誤:

Uncaught SyntaxError: Invalid or unexpected token

我無法弄清楚問題所在。 有沒有辦法解決這個問題或以更有效的方式做到這一點?

更新:這是我從數據庫中收到的原始數據。

[{"_id":{"$id":"58f224ec34189e19cce416d9"},
"origin":"Chicago, IL",
"destination":"Los Angeles, CA",
"waypoints":[
    {"location":"Joplin, MO","stopover":false},
    {"location":"Oklahoma City, OK","stopover":true}],
"provideRouteAlternatives":false,"travelMode":"WALKING",
"unitSystem":"google.maps.UnitSystem.METRIC",
"nombre":"Ruta de Chicago a Los Angeles"}, ...

沒有錯誤。 也許問題出在其他地方? 您是否使用PHP和Ajax獲取數據?

 var routesArray = Array(); var mdata = JSON.parse('[{"_id":{"$id":"58f224ec34189e19cce416d9"},"origin":"Chicag‌​o, IL","destination":"Los Angeles, CA","waypoints":[{"location":"Joplin, MO","stopover":false},{"location":"Oklahoma City, OK","stopover":true}],"provideRouteAlternatives":false,"trav‌​elMode":"WALKING","u‌​nitSystem":"google.m‌​aps.UnitSystem.METRI‌​C","nombre":"Ruta de Chicago a Los Angeles"}]'); mdata.forEach(function(k) { $("#routesPage").append("<button class='accordion' onclick='setRoute(\\"" + k._id.$id + "\\")'>" + k.nombre + "</button>"); routesArray[k._id.$id] = k; }); function setRoute(id) { console.log(id); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div id="routesPage"></div> 

編輯

onclick='setRoute(" + k._id.$id + ")'更改為onclick='setRoute(\\"" + k._id.$id + "\\")'並檢查是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM