2016-12-18 63 views
0

我在自定义Wordpress插件中的外部js文件中调用onchange()函数时遇到问题。 脚本入队onchange函数没有在自定义wordpress插件中被触发

function ajaxschool_enqueuescripts() 
{ 
    wp_enqueue_script('ajaxschool', ASSFURL. '/js/ajaxschool.js', array('jquery')); 
    wp_localize_script('ajaxschool', 'ajaxschoolajax', array('ajaxurl' => admin_url('admin-ajax.php'))); 

} 

add_action('wp_enqueue_scripts', ajaxschool_enqueuescripts); 

这是我HTML代码

echo '<div id="HCS-qsCityWrap" class="HCS-qsFieldWrap">'; 
    global $wpdb; 
    $city_results = $wpdb->get_results ("SELECT * from wp_gj73yj2g8h_hillsborough_city_list;"); 
    echo '<select id="city_id" name="city_name" class="HCS-qsInput HCS-qsSelectInput">'; 
    echo '<option value="">Choose a City</option>'; 
    foreach ($city_results as $result) { 
    echo '<option value="'.$result->city_id.'">'.$result->city_name.'</option>'; 
    } 
    echo '</select>'; 
    echo '</div>'; 

的jQuery ajaxschool.js代码

jQuery(document).ready(function($){ 
$('#city-id select').on('change', function(){ 
    alert("Function Called"); 
}); 
}); 
+0

'$( '#城市-ID选择')'是错误的。只是'$('#city-id')' –

回答

1

选择'#city-id select'表示:

找到某个元素的ID为city-id。然后在它的后代中找到一个<select>元素。

但是你的<select>已经有ID city-id。因此在<select>内找到<select>是无用的。只需将您的选择器降至:

$('#city-id').on('change', function(){ 
    alert("Function Called"); 
}); 
+0

仍然无法正常工作..我使用相同的文件来执行另一个功能...即使这样,我面临类似的问题,像我无法触发按钮onclick jquery功能,只是为了替代我改变了一个链接的按钮,并在HTML给了一个onclick =:somefunction() – Himani

1

请尝试这样。

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

    $(document).on('change','#city_id', function(){ 
     alert("Function Called"); 
    }); 

}); 
+0

仍然无法正常工作..我使用相同的文件来执行功能...即使这样,我面临类似的问题,我不能触发按钮onclick jquery函数,只是为了替代我改变了按钮,并在HTML给了一个onclick =:somefunction() – Himani

+0

HCS-qsCityWrap是循环? – vel

+0

请确保你包含了jquery库。你有没有在控制台上看到任何错误? – vel

1

从你给出的HTML代码,选择的ID city_id没有city-id

所以jQuery的必须是

jQuery(document).ready(function($){ 
    $('#city_id').on('change', function(){ 
     alert("Function Called"); 
    }); 
});