jQuery конфликт модального диалога с html () и возвращают false; - PullRequest
2 голосов
/ 19 октября 2011

У меня есть оргструктура с использованием slickmap.css, которую я изменил с помощью переключателя show / hide.Все работает нормально, но теперь мне нужно добавить модальное диалоговое окно при щелчке и отобразить информацию из тега.

Мне удалось это сделать, но мне пришлось добавить возвращаемое значение false, чтобы предотвратить действие закрывания переключателя,Теперь, когда я отображаю информацию, он полностью удаляет тег со страницы.Я думаю, что когда я добавляю html (это), он игнорирует возвращаемое значение false в конце.

Пожалуйста, кто-нибудь может мне помочь заставить эти две функции работать вместе.чтобы вызвать модальное диалоговое окно, извините, я не выложил скрипку, но я думаю, что именно в этом проблема

$('#samplelink').click(function(){
  $('#modal_window').dialog('open').html(this);
  return false;
}); //end click handler

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

Нельзя передать this методу html () .

Поскольку этот код находится внутри обработчика события, this будет элементом DOM, обрабатывающим событие (click в нашем случае). html() может принимать только строку или аргумент функции.

Если ваша цель - заполнить диалог содержимым #samplelink, вам следует вызвать html() для текущего элемента без аргументов, а затем вызвать html() в диалоговом окне с полученной строкой:

$("#samplelink").click(function() {
    $("#modal_window").dialog("open").html($(this).html());
    return false;
});
1 голос
/ 19 октября 2011

Попробуйте:

$('#samplelink').click(function(){
  $('#modal_window').dialog('open').html($(this).html());
  return false;
}); //end click handler

Где $(this).html() содержит действительный код HTML.

Вы можете попробовать быстро

$('#samplelink').click(function(){
  $('#modal_window').dialog('open').html('<h1>Hello World</h1>');
  return false;
}); //end click handler
...