2013-03-22 4 views
0

Я использую диалоговое окно jQuery, которое находится на этом link, и я пытаюсь открыть его с помощью события onClick, а не с помощью кнопки. Он работает в Firefox и Chrome, но не работает в IE. Если вы перейдете на мой тестовый сайт и нажмите на верхний левый (первый) флажок, вы увидите, что он вызывает диалог в FF и Chrome, но в IE8 или IE9 нет выбранного «ручного» курсора. http://calmaps.co.calumet.wi.us/datapopuptest.html Я не владею JavaScript, но я просто использую пример, поэтому я не написал код, просто изменил текст, чтобы удовлетворить мои потребности.onClick event и IE

The яваскрипта им пытаются вызвать в HTML:

$("#request-data") 
    //.button() 
    .click(function() { 
    $("#dialog-form").dialog("open"); 
    }); 

мой HTML вызова JavaScript:

<a id="request-data" title="Municipal Boundary Data" onclick= "$('#request-data').click(function() {$('#dialog-form').dialog('open'); 
    return false;})" href="PleaseEnableJavascript.html"><img src="img/muni.png" alt="Calumet Municipal Boundaries" /></a> 

Как я уже сказал, это работает в Chrome и Firefox, но я не получаю ничего в IE, нет ошибки, просто ничего. Я провел день, исследуя эту проблему, и я надеюсь, что смогу получить некоторое представление. Благодаря!

+0

Вы должны положить JS код в '' файле

2

Учитывая, что в onclick вы определение click handler для элемента (т.е. при нажатии на нее вы говорите ему, что делать, когда он нажал), тот факт, что он работает в любом броузера первый раз, когда вы нажмите, это является свидетельством закона Постэла.

Вы можете либо изменить OnClick, чтобы делать то, что вам нужно:

onclick= "$('#dialog-form').dialog('open') .. 

Или сделать его вызвать функцию:

function showDialog() { .. } 

onclick= "showDialog()" 

Или вы могли бы просто назначить обработчик щелчка в document.ready, и то вам ничего не нужно в onclick

$(document).ready(function() { 
    $("#request-data").click(function() { 
     $("#dialog-form").dialog("open"); 
    }); 
}); 
+1

Я бы предложил второй вариант, иначе вы не пропустите пункт использования jQuery. – SDC

+0

@stuartd Пожалуйста, простите мое невежество, но когда я поместил в свой код блок $ (document) .ready ..., он просто испортил страницу, поместив поля диалогового окна, которые должны находиться в новом окне на главная веб-страница. Я предположил, что мне нужно удалить событие onClick из html, что я и сделал, и он все еще не работает. Спасибо еще раз за помощь! – user2199437

0

On e всех пунктов использования jQuery заключается в том, что вы можете определить свои события кликов, не используя onclick в HTML.

Метод $(...).click() не предназначен для использования внутри атрибута onclick.

Напишите обработчик клика jQuery в своей функции $(document).ready() и вытащите его из HTML.

Надеюсь, что это поможет.