2014-04-08 1 views
0

오케이, 긴 제목을 용서해주세요. 내 코드 스 니핏은 페이지 하단에 있습니다.Javascript 함수 TypeError 단 substring() 문자열에만 해당

피벗 테이블의 행과 열을 미리 정의 된 값으로 변경하는 자바 스크립트 프로그램을 만들었습니다. 처음에는 값을 삽입하는 데 자바 스크립트를 사용하지 않는 한 잘 작동하는 을 사용하여이 작업을 수행했습니다.

IE <onclick="presetFunction('count', 'Heatmap', ['ClassNum'], ['Grade'])"> 페이지에 입력하면 정상적으로 작동합니다. 그러나 자바 스크립트를 사용하여 위의 행을 페이지에 배치 할 수는 없습니다.

콘솔에서 "TypeError : opts.aggregators [aggregator.val (...)]가 함수가 아닙니다."라는 오류가 발생했습니다. 내 유형을 검사했습니다. 내 문자열 해부가 유형을 변경 한 경우를 대비하여), 그것은 문제가 아니었다. 가치를 확인 했는데도 문제가되지 않습니다.

function presetFunction(Agg, Rend, Col, Row) { 
    $(".pvtRenderer").val(Rend).trigger("change"); 
    $(".pvtAggregator").val(Agg).trigger("change"); 
    $(".label.label-info").each(function (index, element) { 
     test = $(element).html(); 
     test = test.substring(6, test.length - 42); 
     if ((Col.indexOf(test)) != -1) 
      $(".pvtAxisContainer.pvtRows.ui-sortable").append(element); 
     else if (Row.indexOf(test) != -1) 
      $(".pvtAxisContainer.pvtHorizList.pvtCols.ui-sortable").append(element); 
     else 
      $(".pvtAxisContainer.pvtUnused.pvtHorizList.ui-sortable").append(element); 
     $(element).triggerHandler(""); 
    }); 
} 

문자열을주기 : 주위 사물 이동

<li id="one" class="Barchart"> 
    <a href="#one">Barchart<span>5</span></a> 
    <ul id="bchart" class="sub-menu"> 
    </ul> 
</li> 

자바 스크립트 :

요소 내가 온 클릭에 부착 해요 : 여기

내가 사용하고 코드 snippits입니다 여기에서 테스트하기 :

function loadPresets() { 
    var presets = "\'count\', \'Bar Chart\', [\'ProfLastName\'], [\'Grade\']"; 
    var sep = presets.indexOf(","); 
    var style = presets.substr(0, sep).trim(); 

    presets = presets.substr(sep + 1, presets.length).trim(); 
    sep = presets.indexOf(","); 

    var type = presets.substr(0, sep).trim(); 
    presets = presets.substr(sep + 1, presets.length).trim(); 
    sep = presets.indexOf("]"); 

    var row = presets.substr(0, sep + 1); 
    presets = presets.substr(sep + 2, presets.length); 

    var col = presets.trim(); 
    var link = '<li><a href=\"#\" id=\"b01\"><em>01</em>Teacher vs. Grade</a></li>'; 

    $("#bchart").append(link); 
    $("#b01").click(function() { 
     presetFunction(style, type, row, col); 
    }); 
} 

도움을 주시면 감사하겠습니다. CF

+0

같이 보입니다에 * 사전 * 다음 다른 변수에 할당 할 그것을 분할하면 해당 작업을 수행하는 지나치게 복잡한 방법처럼 보인다. – RobG

+0

나는이 기능을 테스트하기 위해 그렇게하고있었습니다. 나는 실제로 그 형식으로 문자열을 끌어 오기 위해 PHP를 사용하고 있습니다. 나는 끈이 어떻게 생겼는지 보여줘야한다고 생각했다. – Jesusfreaks95

답변

0

문제는 변수 내부에 작은 따옴표가있는 것입니다. 그들을 제거.

귀하의 onclick에 값을 할당이

presetFunction("'style'", "'type'", "'row'", "'col'"); 
관련 문제