2015-01-21 21 views
1

我正在嘗試編輯多視頻頁面的wordpress模板。每個視頻項目都可以點擊播放視頻,但是隻要定義了鏈接(在wordpress簡碼中),我就希望啓用該點擊事件。你可以在這裏看到一個視頻頁面的例子:http://madbunny.us/vixen/demo/all/dark/multi-video/基於PHP條件啓用jquery點擊事件

這是一個投資組合網站,所以如果沒有鏈接,將圖片仍然作爲一個項目,但沒有視頻對我來說非常重要。

更新: 根據Jay Hewitt的回覆調整後,它做了我想要的,但它引入了一個新問題,它可以轉到下一個視頻,但不會返回到以前的視頻沒有網址(禁用點擊事件)。

jQuery('.multivideo-center-play-btn, .multivideo-preview').each(function(){ 
    var _self = jQuery(this); 
    _self.bind('click',function(){ 
     if(_self.parent().find(".hidden-url").text() != ""){ 
      var $vid = jQuery(this).parent(); 
      if ($vid.hasClass('active') || isAMobile)playVideo($vid); 
      else moveToVideo($vid);  
     } 
    }); 
}); 

我是新來的這個東西,所以請裸露在我身邊,我真的很感激它。

+0

是你正在試圖做什麼? :if('<?php echo $ content?>'!=「」)。你在.js文件或.php文件中? – Su4p 2015-01-21 11:14:58

+0

你不能檢查URL是否用jQuery定義? – mgaido 2015-01-21 11:18:00

回答

0

什麼是$內容變量檢查呢?它看起來會爲所有綁定使用一個變量。

如果它只是在hidden-url div中設置的URL,那麼您希望將綁定添加到符合條件的每個選擇器。

jQuery('.multivideo-center-play-btn, .multivideo-preview').each(function(){ 
    var _self = jQuery(this); 
    var $vid = jQuery(this).parent(); 
    _self.bind('click',function(){ 
     if(_self.parent().find(".hidden-url").text() != ""){ 
      if ($vid.hasClass('active') || isAMobile){ 
       playVideo($vid); 
      } else { 
       moveToVideo($vid); 
      } 
     } else { 
      moveToVideo($vid); 
     } 
    }); 
}); 
+0

謝謝,我不得不重新排列else參數,因爲幻燈片根本不工作。它完全符合我的要求,但現在幻燈片不會返回到沒有網址的視頻,而是會出現在具有該網址的視頻旁邊。我在原帖中更新了我的代碼。 – Hesh 2015-01-21 12:21:55

+0

好的,我測試了您的網站,並更新了我上面的代碼片段。這應該爲你做。 – 2015-01-21 12:44:32

+0

非常謝謝你,周杰倫!這一天一直困擾着我好幾天!完美的作品,真的很巧妙! – Hesh 2015-01-21 13:09:56

0

在PHP變量設置像這樣的東西:

<?php 
    if($content) { 
     echo '<script> 
        var multivideo = true; 
       </script>'; 
    } 
?> 

的,你可以在你的腳本檢查定義的變量。

Otherwiese,如果你不希望定義一個全局變量,你可以data -attribute添加到.multivideo-center-play-btn, .multivideo-preview元素,
jQuery(this).data('enabled')

+0

或者將URL設置爲父級中的數據屬性,這將是一個不錯的解決方案 – 2015-01-21 11:40:32

+0

您的意思是因爲他將$ vid定義爲父按鈕?這實際上並不需要做,因爲調用'jQuery(this)'或'$ vid'幾乎是一樣的,而vid已經佔用了一些緩存空間並且可以用來保持高性能。因爲在一個大的應用程序中,它會導致性能滯後,每次你想用元素做一些事情時都會調用jquery,而不是將它們保存在變量中:) – Mephiztopheles 2015-01-21 12:02:55