2011-07-28 6 views
0

내 코드에 var를 설정 한 다음이를 전역으로 설정했지만 어떤 이유로 대화 상자에 '정의되지 않음'으로 표시됩니다. 제목에 var를 사용할 수 있습니까? 대화 상자 옵션전역 변수를 사용하여 jquery 대화 상자 제목이 정의되지 않았습니다.

당신이 당신의 대화를 인스턴스화 할 때 title: 'Edit box' + ' ' + box 라인이 실행됩니다
title: 'Edit box' + ' ' + box, 
+2

더 많은 코드를 게시해야합니다 ... –

+0

@william. 왜 나 한테 반대 한거야? – bollo

+0

그것이 나 였는지 어떻게 알 수 있습니까? 나는 너에게 다운 다운을하지 않았다. –

답변

2

에서 기능

var box; 

의 외부 .click 이벤트

box = $('#EB_custref').val(); 

감사

: 나는 당신을 가정 $(document).ready에 그 일을하고 있습니다. 이 시점에서 변수 box은 정의되지 않습니다.

click 이벤트에 box을 설정하면 너무 늦었습니다. 제목이 이미 설정되었습니다.

자세한 내용은 this post을 참조하십시오. 여기에 편집


이 하나 개의 솔루션의 데모입니다 :

HTML

<button data-title="Apple">OPEN 1</button> 
<button data-title="Banana">OPEN 2</button> 

<div id="MyDialog"> 
    Example Dialog Content 
</div> 

JQUERY

var globalTitle = ''; // Your global variable 

// Startup operations 
$(function() { 

    $('#MyDialog').hide(); 
    $('button').click(function() { 
          openMyDialog($(this).data('title')) 
         }); 
}); 

// Open the dialog using the global myTitle variable 
function openMyDialog(customTitle) 
{ 
    globalTitle = customTitle; 
    $('#MyDialog').dialog({title : globalTitle}); 
} 

HTML5 스타일의 data- 속성을 사용합니다.이 속성은 잠금 기능을 가지며 .data() 기능을 통해 jQuery에서 액세스 할 수 있습니다. 또한 전역 변수를 사용하여 사용할 수 있음을 보여줍니다. 그러나 거기에 대한 필요가 없습니다 - 가장 좋은 방법은 바로 dialog() 전화로 customTitle을 통과하는 것입니다 $('#MyDialog').dialog({title : customTitle});

+0

제임스 감사합니다. 나는 css를 직접 해킹하는 것을 알고 있었다. – bollo

+0

어떻게하면 제임스 귀하의 의견을 기반으로 클릭 이벤트에서 글로벌 상자를 만들 수 있습니까? thanks – bollo

+0

'box' var *은 * global이며, 정의되지 않았을 때'title' 속성을 설정하는데 사용했습니다. 'title'은 문자열이기 때문에 이후에'box'의 값을 바꾸어도 상관 없습니다. title은 동일한 리터럴 문자열, 즉 '편집 상자가 정의되지 않음'으로 유지됩니다. 가장 좋은 방법은 클릭 이벤트에서 대화 상자 인스턴스화 코드를 실행하는 것입니다. –

0
alert($('#EB_custref').val()) 

확인 즉, 자사의 반환 값 여부를

및 사후 더 많은 코드/

가능한 경우
+0

올바른 값을 반환 중입니다. 덕분에 – bollo

+0

@ 볼로 - 자세한 내용은 코드 붙여 넣기 –

관련 문제