2013-01-05 36 views
0

我想展示一個彈出當一個變量「$ MYVAR」的值是「myvalue的」,所以我把這個代碼如何防止某些事件不傳播 - JQuery的

<script type="text/javascript"> 
    $(document).ready(function(){ 
      if($myvar=='my value'){ 
      $("#overlay").removeClass("invisible"); 
      $("#message").removeClass("invisible"); 
      } 
     $('#message #close').live('click',function() { 
      $("#overlay").addClass("invisible"); 
      $("#message").addClass("invisible"); 
     }); 
    }); 
</script> 

這是有關到

<div id="overlay" class="invisible"></div> 
     <div class="invisible" id="message"> 
    <div class="header"> 
     <h2><span><?php echo _('some message!') ?></span> </h2> 
     <div id="close"></div> 
    </div> 
</div> 

因此,當用戶來到這個頁面,當變量設置爲「myvalue的」,出現彈出,但我不能關閉它,當我cleick在#關閉標籤。是否點擊冒泡事件以便再次處理腳本?如果是的話,如何預防呢?

+1

號的的document.ready事件只會觸發一次當頁面加載。 – JJJ

+1

根據你發佈的HTML,它看起來好像沒有'#follow_message',即使有沒有必要。試試只用'$('#close')'。 – JJJ

+0

你確定這個選擇器:$('#follow_message#close')???你應該用下面的代碼:$('#close') –

回答

-1

這裏:

$('#close').die('click'); 
$('#close').live('click',function() { 
}); 

live(),然而,已被棄用。改爲使用on()

乾杯!

0

你的代碼對我來說看起來很好,唯一的問題是你的html沒有一個包含id="follow_message"的包裝元素,因爲你的JS似乎期望。我認爲你剛纔錯過了你的問題。

修復,它似乎很好地工作:http://jsfiddle.net/vcQrV/

編輯:所以有固定的JS使用#message它仍然工作:http://jsfiddle.net/vcQrV/1/

+0

對不起,我更新了我的帖子,確實是#message,但這仍然在工作 – user1611830

+0

好的,你的問題解決了嗎?它看起來像我預期的那樣... – RichardTowers

+0

不,實際上,我仍然有一個奇怪的行爲。當我關閉彈出窗口時,彈出窗口會再次出現 – user1611830