2010-05-10 39 views
43

Mã bên dưới hiển thị bản đồ của Google và kết quả tìm kiếm khi bạn nhập địa chỉ và nhấn nút gửi. Tôi đã chơi với nó để thử và buộc trang hoàn toàn làm mới hoặc tải lại sau khi bạn nhấn nút gửi. Nhưng tôi không thể làm cho nó hoạt động đúng. Nó tải kết quả "trong trang", nhưng tôi muốn trang hoàn toàn làm mới khi tải kết quả, như khi bạn nhấn nút quay lại trên trình duyệt của mình. Hy vọng rằng có ý nghĩa.Làm cách nào để buộc làm mới trang hoặc tải lại trong jQuery?

Tôi nghĩ câu trả lời nằm trong dòng mã này nhưng tôi không biết jquery rất tốt. Nó gần cuối mã đầy đủ bên dưới.

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

Đây là mã đầy đủ bên dưới. Mọi sự trợ giúp sẽ rất được trân trọng!

<?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>'; 

?> 

Trả lời

127

Bạn không cần jQuery để thực hiện việc này. Hãy nắm lấy sức mạnh của JavaScript.

window.location.reload() 

Chỉnh sửa: Đây là một ví dụ khác, nơi một số "jQuery kỳ diệu" được kỳ vọng sẽ giải quyết vấn đề mà không nghĩ đến nguyên tắc cơ bản của JavaScript mà thường là cách nhanh nhất và trực tiếp nhất đơn giản nhất để làm điều gì đó.

+0

Không hoạt động đối với window.parent.location.reload() –

+3

Theo cú pháp, đó không phải là: window.parent.window.location.reload()? –

+0

Tôi đã kiểm tra MozDevNet và phát hiện ra rằng cửa sổ "cha mẹ" hầu như không thể truy cập được thông qua cha mẹ, bạn phải sử dụng thuộc tính sau: https://developer.mozilla.org/en/DOM/window.opener cửa sổ. opener.locaten.reload() Cũng window.parent đã trả về tham chiếu đến cửa sổ cha, vì cha mẹ là cửa sổ kiểu. –

19

Thay thế mà phù hợp với:

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

hay:

$("#someElement").click(function() { 
    window.location.reload(); 
}); 
+0

Xin chào các bạn. Tôi là một tổng noob tại công cụ này, nhưng khi tôi thay thế tải(); với window.location.reload(); trang tiếp tục làm mới tại thời điểm trang tải lên và không dừng lại. Bạn có thể cho tôi biết nơi tôi thực hiện thay đổi không? – TimMac

+0

onsubmit = "searchLocations (\ ''. $ Category.'\'); return false; " Loại bỏ" return false " –

+0

Cảm ơn, nhưng tôi vẫn đang trong vòng lặp làm mới vô hạn. Tôi đã làm điều này đúng:

1

Bạn có thể làm mới các sự kiện sau khi thêm mới bằng cách áp dụng đoạn mã sau: -Release Sự kiện -Thiết Sự kiện nguồn -Re-render Sự kiện

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

Điều đó sẽ giải quyết vấn đề

Các vấn đề liên quan