0

地図上にいくつかのマーカーを表示しています。クリックすると、情報ウィンドウが表示されます。このウィンドウには、それぞれがajaxリクエストを送信する2つのボタンが含まれています。問題は、ボタンonClickイベントに何か(以下のマーカーパラメーターを除く)を送信すると、機能しないことです。スクリプトファイルではなく、HTMLページの最初の行に「adminmap.html:1Uncaught SyntaxError:UnexpectedtokenILLEGAL」というエラーが表示されます。

function handleButtonApprove(id) {
    //error happens here when I send any parameter except marker8(defined below)
    //console.log(id);
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: VERIFY_OBSTACLES_URL,
            //data: { markerID:sentID , approved:0 },
            success: function (data) {
                alert(data);
            }
        });
    });
}

function handleButtonReject() {
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: VERIFY_OBSTACLES_URL,
            //data: { markerID:marker.id , approved:0 },
            success: function (data) {
                alert(data);
            }
        });
    });
}

function attachInfo(marker8, num) {
    //var markerID = marker.get("id");
    //console.log(markerID);
    var infowindow = new google.maps.InfoWindow({
        //Here is the error , if I sent num.toString, num or any string , it does not work. If send marker8.getPosition() for example it works. May I know the reason ?
        content: '<div id="info_content">Matab Info</div> <button onclick="handleButtonApprove(' + num.toString() + ')">Verify</button> </br> <button onclick="handleButtonReject()">Remove</button>'
    });
    google.maps.event.addListener(marker8, 'click', function () {
        infowindow.open(marker8.get('map'), marker8);
    });
}
4

1 に答える 1

0

(非数値) 文字列を handleButtonApprove() の引数として提供する場合は、文字列を引用符で囲む必要があります。

content: '<div id="info_content">Matab Info</div> \
          <button onclick="handleButtonApprove(\'' + num.toString() + '\')">\
             Verify</button>\
          </br> <button onclick="handleButtonReject()">Remove</button>'

ただし、引用符を使用しない場合、エラーは未定義の変数であり、構文エラーではないため、これは問題にはなりません。正確には何numですか?

于 2012-11-05T20:16:49.317 に答える