2010-07-22 65 views
1

我是jQuery的新手...

我在頁面中使用了一個jQuery插件(Actually SimpleModal Plugin)。它沒有工作,直到我用jQuery替換$!

$(document).ready(function() { --> jQuery(document).ready(function() { 

它現在工作,但我仍然有問題!我想通過點擊頁面上的取消按鈕關閉這個模式窗口。 在SimpleModal的手冊中已經說過:「您可以通過調用$ .modal.close();以編程方式關閉當前打開的對話框」但它對我不起作用。我用「jQuery」替換了「$」,但不起作用。

我想知道爲什麼我必須使用jQuery定義?在這種情況下我必須做什麼?!

P.S. 點擊按鈕時,此代碼工作正常:

<script type="text/javascript" language="javascript"> 
    jQuery(document).ready(function() { 
     jQuery('#cancelID').click(function() { 
      alert ("test"); 
     }); 
    }); 
</script> 

此代碼不正確動作:

<script type="text/javascript" language="javascript"> 
    jQuery(document).ready(function() { 
     jQuery('#cancelID').click(function() { 
      $.modal.close(); 
     }); 
    }); 
</script> 

感謝您的時間和幫助他人。

+0

是否使用jQuery的對話模式?如果是這樣,那麼像這樣的語句:$(this).dialog('close');將在與按鈕相關聯的模式代碼中工作。 – 2010-07-22 20:53:28

+0

@Mark - 除了他使用SimpleModal而不使用jQuery UI對話框... – 2010-07-22 21:40:58

+0

@Mark:感謝您的評論,我會測試您的建議,謝謝;) @Eric:感謝您的偉大插件,它是完美的;) @All:我其實不能用我的按鈕關閉模式頁面,而不是我嘗試使用其默認的關閉按鈕...它成功地工作,但我愛學習怎麼用我的取消按鈕! – Monica 2010-07-23 00:19:20

回答

3

在這種情況下,你還是把它作爲jQuery對象上的屬性,如:

jQuery(document).ready(function() { 
    jQuery('#cancelID').click(function() { 
     jQuery.modal.close(); 
    }); 
}); 

或者使用$ready函數內(它是作爲第一個參數傳遞)是這樣的:

jQuery(function($) { 
    $('#cancelID').click(function() { 
     $.modal.close(); 
    }); 
}); 

至於爲什麼$只是工作?看看你的代碼jQuery.noConflict()$.noConflict()。該函數釋放$的控制權,因此它不再與jQuery相同,通常這是用於其他庫對其進行控制的,例如Prototype。我發現

+0

真的謝謝多少尼克...我測試你的代碼,但不幸的是他們沒有工作... :( 但是你的解釋和關於我的問題是鏈接真正有用的感謝!;) – Monica 2010-07-22 19:50:19

0

的一個潛在有用的技巧是,你可以圍繞你的$ - 使用jQuery代碼與

(function($){ 

... 

})(jQuery) 

和所有的跡象$將再次工作,而不需要單獨更改爲「jQuery的」。

+0

作爲你的意見,我改變了我的代碼此: (函數($){$ (文件)。就緒(函數(){ $( '#cancelID')點擊(函數(){$ .modal.close();} ) ; });} )(jQuery的) 但同樣不能關閉我的模式窗體!無論如何,感謝您的時間和您的答案;) – Monica 2010-07-22 19:54:50

1

你應該瞭解以下內容:

  1. jQuery的定義只有一個全局(文件/窗位)變量:$
  2. 其他庫可能會使用$全局變量(例如:原型)
  3. 因此,如果您使用另一個JS庫以及 jQuery,jQuery通過提供很好地播放它功能。該函數基本上將$的值重新賦值給另一個庫,並使用jQuery關鍵字代替。
  4. 假設您可能正在使用其他庫,jQuery插件已經使用jQuery關鍵字。
+0

我從你們那裏學到很多東西!謝謝你的有用答案;)你解釋得很清楚,你是一位出色的老師! – Monica 2010-07-22 19:58:21

+0

如果你喜歡它,與給予好評回報;) – 2010-07-22 20:31:17

+0

我不能!它需要15的聲譽和我沒有:(我可以用我的祝福還給我只爲你;) – Monica 2010-07-22 20:41:09

相關問題