2012-08-27 81 views
0

下面是我的自定義插件的頁面代碼,我嘗試使用jquery datetime選擇器。 選取器腳本取自this link。但由於某種原因,我得到一個錯誤消息,說「jQuery(」#日曆1,#日曆2「)。日曆不是一個功能」。我已經檢查過需要的文件是否正確包含在自定義代碼之前。但仍然有這個錯誤。Datetime Picker Wordpress插件

<?php 
function list_my_styles() { // ADDING THE SCRIPTS 
$plugin_url = WP_PLUGIN_URL.'/my_custom_datepicker/'; 
wp_register_style('my-addon-datepicker-css',$plugin_url.'jquery-calendar.css'); 
wp_enqueue_style('my-addon-datepicker-css'); 
wp_enqueue_script('jquery'); 
wp_register_script('calendar_plugin',$plugin_url.'jquery-calendar.js'); 
wp_enqueue_script('calendar_plugin'); 
} 
add_action('wp_enqueue_scripts','list_my_styles'); 

function my_custom_datetime_script() { // ADDING THE JQUERY SCRIPT 
?> 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#calendar1, #calendar2").calendar(); 
     jQuery("#calendar1_alert").click(function(){alert(popUpCal.parseDate(jQuery('#calendar1').val()))}); 
    }); 
</script> 
<?php 
} 
add_action('wp_head','my_custom_datetime_script'); 
function custom_datetime_picker_area() { 
?> 

<input type="text" id="calendar1" class="calendarFocus"/> 
<input type="button" id="calendar1_alert" value="Alert datetime object"/> 
<?php 
} 
add_shortcode('my_datepicker','custom_datetime_picker_area'); 
?> 

任何幫助將理解

由於

回答

4

這是我在我的插件中使用的:

 /* add jquery ui datepicker and theme */ 
     global $wp_scripts; 
     wp_enqueue_script('jquery-ui-datepicker'); 
     $ui = $wp_scripts->query('jquery-ui-core'); 
     $url = "https://ajax.aspnetcdn.com/ajax/jquery.ui/{$ui->ver}/themes/redmond/jquery.ui.all.css"; 
     wp_enqueue_style('jquery-ui-redmond', $url, false, $ui->ver); 

我正在使用的CDN具有所有可用主題以供選擇。

然後我的窗體頁上使用:

 <label for="date_of" style="width: 135px !important;">Presentation Date 
     <?php echo '<img src="'.$this->pluginurl.'images/help.png" 
     title="Enter the Presentation date here." />';?> 
     </label> 
     <input type="text" id="date_of" name="date_of" value="" /> 

和:

jQuery(document).ready(function() { 
     jQuery('#date_of').datepicker({ 
      dateFormat: 'yy-mm-dd' 
     }); 
    }); 

我加載使用寄存器/ enqueue_script其中包含的document.ready功能plugin.js文件。

希望這會有所幫助。

+0

是的。那就是我想要的。幫了我很多。 – Roger

0

錯誤意味着它不能找到這個功能,這又意味着要麼: 1 - 它不能找到的腳本,或 2 - 你正試圖在加載腳本之前執行該腳本。

有一件事我不明白 - 這段代碼在你的插件中的位置?

總之,首先驗證是否在你的主題wp_head()wp_head()行動(模板標籤),您測試該插件,然後,還嘗試移動的動作頁腳...

function my_custom_datetime_script() { // ADDING THE JQUERY SCRIPT 
    ?> 
    <script type="text/javascript"> 
     jQuery(document).ready(function() { 
      jQuery("#calendar1, #calendar2").calendar(); 
      jQuery("#calendar1_alert").click(function(){alert(popUpCal.parseDate(jQuery('#calendar1').val()))}); 
     }); 
    </script> 
    <?php 
    } 

add_action('wp_footer','my_custom_datetime_script');