2017-02-09 6 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

私はクリックイベントをリセットする方法はありますか?これらの関数はこのコードを実行する前に既に初期化されているためです。それが私がページをリフレッシュする必要がある理由です。ページが最初にリロードされない限り、clickイベントは機能しません。 – Tom

+0

'$(document).ready(function(){//ここにコードを置きます})'でラップしようとします。これは基本的には「ドキュメントが準備ができるまでページを安全に操作することはできません」という意味です。 –

+0

私はそれを試しましたが、私はlocation.reload()を置くと作業は/ – Tom

関連する問題