2017-02-09 19 views
1

我正在處理一個頁面,我試圖在點擊時重新加載頁面並執行一個功能。此代碼適用於Safara和Firefox,但它不適用於Chrome,我不知道IE。希望有人能幫助我。以下是我的代碼。不知道是否有更好的方法來做到這一點。嘗試使用數據標籤並單擊事件以觸發某個功能

基本上我只是創建一個URL,點擊傳遞一個數據標籤,然後抓取數據標籤,並將類別分配到一個URL的末尾。然後我執行稱爲「#tomatoes」的類別url函數。我必須重新加載頁面,因爲函數已經被調用過。

var categoryTitle = 'Tomatoes'; 
$('.activeCategory').html('<a href="#" class="activeCategory" data-caturl="#tomatoes">' + categoryTitle + '</a>'); 

//change the category dynamically if clicked from individual product page 
     $('.activeCategory').click(function(event) { 
      var caturl = $(this).children('a').data('caturl'); 
      var newWindow = window.location.href="http://www.example.com/DEV/product-categories/example.php" + caturl; 
      if (newWindow === "http://www.example.com/DEV/product-categories/example.php" + caturl) { 
       location.reload(); 
       $("caturl").click(); 
      } 
     }); 
+0

請問您可以發表html嗎? –

+0

請嘗試包含一個工作示例。 http://stackoverflow.com/help/mcve – lleaff

回答

1

我會重新加載頁面並添加標籤#然後執行您的功能。沒有辦法在頁面重新加載時進行回調,因爲您的JS應用程序會重新初始化並重新開始。

var categoryTitle = 'Tomatoes'; 
$('.activeCategory').html('<a href="#" class="activeCategory" data-caturl="#tomatoes">' + categoryTitle + '</a>'); 

//change the category dynamically if clicked from individual product page 
     $('.activeCategory').click(function(event) { 
      var caturl = $(this).children('a').data('caturl'); 
      var newWindow = window.location.href="http://www.example.com/DEV/product-categories/example.php" + caturl; 
      if (newWindow === "http://www.example.com/DEV/product-categories/example.php" + caturl) { 
       if(window.location.hash) { 
       $("caturl").click(); 
       } else { 
       window.location = window.location.href + "#refresh"; 
       location.reload(); 
       } 



      } 
     }); 
+0

有沒有辦法可以重置點擊事件?因爲這些函數在運行此代碼之前已經被初始化。這就是爲什麼我需要刷新頁面。點擊事件不會工作,除非頁面第一次被重新加載 – Tom

+0

試着將它包裝在'$(document).ready(function(){//把你的代碼放在這裏})'。這基本上意味着「只有在文檔已準備就緒後,才能安全地操作頁面。」 –

+0

我試過了,但它不起作用=/ – Tom

相關問題