Как заставить обновления страницы или перезагрузки в jQuery? - PullRequest
49 голосов
/ 10 мая 2010

Приведенный ниже код отображает карту Google и результаты поиска, когда вы вводите адрес и нажимаете кнопку отправки. Я играл с ним, чтобы попробовать и заставить страницу полностью обновить или перезагрузить, как только вы нажмете кнопку отправки. Но я не могу заставить его работать правильно. Он загружает результаты «на странице», но я бы хотел, чтобы страница полностью обновлялась при загрузке результатов, например, когда вы нажимаете кнопку «Назад» в браузере. Надеюсь, что это имеет смысл.

Я думаю, что ответ лежит в этой строке кода, но я не очень хорошо знаю jquery. Это почти внизу полного кода ниже.

<script type="text/javascript">
(function($) { 
    $(document).ready(function() {
        load();';

Вот полный код ниже. Любая помощь будет принята с благодарностью!

<?php
/*
SimpleMap Plugin
display-map.php: Displays the Google Map and search results
*/
$to_display = '';

if ($options['display_search'] == 'show') {
$to_display .= '
<div id="map_search" style="width: '.$options['map_width'].';">
    <a name="map_top"></a>
    <form onsubmit="searchLocations(\''.$categories.'\'); return false;"         name="searchForm" id="searchForm"     action="http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'">
        <input type="text" id="addressInput" name="addressInput" class="address"     />&nbsp;
        <select name="radiusSelect" id="radiusSelect">';

            $default_radius = $options['default_radius'];
            unset($selected_radius);
            $selected_radius[$default_radius] = ' selected="selected"';

            foreach ($search_radii as $value) {
                    $r = (int)$value;
                    $to_display .= '<option valu         e="'.$value.'"'.$selected_radius[$r].'>'.$value.' '.$options['units']."</option>\n";
            }

$to_display .= '    
        </select>&nbsp;
        <input type="submit" value="'.__('Search', 'SimpleMap').'"     id="addressSubmit" class="submit" />
        <p>'.__('Please enter an address or search term in the box above.',     'SimpleMap').'</p>
    </form>
</div>';
}
if ($options['powered_by'] == 'show') {
    $to_display .= '<div id="powered_by_simplemap">'.sprintf(__('Powered by %s     SimpleMap', 'SimpleMap'),'<a href="http://simplemap-plugin.com/"     target="_blank">').'</a></div>';
}

$to_display .= '
<div id="map" style="width: '.$options['map_width'].'; height:     '.$options['map_height'].';"></div>

<div id="results" style="width: '.$options['map_width'].';"></div>

<script type="text/javascript">
(function($) { 
    $(document).ready(function() {
        load();';    

        if ($options['autoload'] == 'some') {
            $to_display .= 'var autoLatLng = new GLatLng(default_lat,     default_lng);
            searchLocationsNear(autoLatLng, autoLatLng.lat() + ", " +     autoLatLng.lng(), "auto", "'.$options['lock_default_location'].'", "'.$categories.'");';
        }

        else if ($options['autoload'] == 'all') {
            $to_display .= 'var autoLatLng = new GLatLng(default_lat,     default_lng);
            searchLocationsNear(autoLatLng, autoLatLng.lat() + ", " +     autoLatLng.lng(), "auto_all", "'.$options['lock_default_location'].'",     "'.$categories.'");';
        }

$to_display .= '
    });
})(jQuery);
</script>';

?>

Ответы [ 5 ]

135 голосов
/ 10 мая 2010

Вам не нужен jQuery для этого. Воспользуйтесь мощью JavaScript.

window.location.reload()
21 голосов
/ 10 мая 2010

Заменить эту строку на:

$("#someElement").click(function() {
    window.location.href = window.location.href;
});

или

$("#someElement").click(function() {
    window.location.reload();
});
6 голосов
/ 20 июня 2012

Или лучше

window.location.assign("relative or absolute address");

, который лучше всего работает во всех браузерах и на мобильных устройствах

1 голос
/ 15 января 2016

Вы можете обновить события после добавления новых, применив следующий код: -После событий источник события -Рендеринг событий

  $('#calendar').fullCalendar('removeEvents');
                  $('#calendar').fullCalendar('addEventSource', YoureventSource);         
                  $('#calendar').fullCalendar('rerenderEvents' );

Это решит проблему

1 голос
/ 10 октября 2013

Заменить на:

$('#something').click(function() {
    location.reload();
});
...