我想将我的Ajax调用从Prototype更改为jQuery。但不知何故,事情还没有奏效。 .....几个小时后,得到更清晰的画面,事情正在发挥作用。
为了让其他人有可能看到如何完成“迁移”,我发布了这个......
我的原型是这样的:
<li>
<a href='#' onclick="variables(); Effect.toggle('datasets','BLIND'); return false;">
<div class='additionalLinksMenuBar'> </div>
<div class='tableName additionalLinksMenuLink'>define dataset</div>
</a>
</li>
<li>
<div id='datasets' style='display:none; border: 1px solid #00115a; background-color: #FFF6D1; text-align: left; margin-left: 8px; padding: 12px 10px;'>
<script type='text/javascript'>
function variables()
{
var url = 'http://my_url/etc/php/fill_variable_list.php';
var target = 'output-div';
var pars = 'selectedKeyword=cereals&selected_ids=&selectedDatasettype=1&p=';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}
</script>
<br />
<div id='output-div'></div>
<script>
$('output-div').insert(new Element('form', { id:'form_define_dataset' }))
</script>
</div>
</li>
我的新jQuery是这样的:
<li>
<a href='#' onclick="variables(); $('#datasets').slideToggle('slow'); return false;">
<div class='additionalLinksMenuBar'> </div>
<div class='tableName additionalLinksMenuLink'>define dataset</div>
</a>
</li>
<li>
<div id='datasets' style='display:none; border: 1px solid #00115a; background-color: #FFF6D1; text-align: left; margin-left: 8px; padding: 12px 10px;'>
<script type='text/javascript'>
function variables()
{
$.ajax({
type: 'GET',
url: 'http://my_url/etc/php/fill_variable_list.php',
data: 'selectedKeyword=cereals&selected_ids=&selectedDatasettype=1&p=',
dataType: 'html'
})
.done(function( html ) {
$( '#output-div' ).append( html );
});
}
</script>
<br />
<div id='output-div'></div>
</div>
</li>
#
答案 0 :(得分:0)
代码转换似乎完全正确。
尝试使用以下代码查看您获得的例外
$.ajax({
type: 'GET',
url: 'http://my_url/etc/php/fill_variable_list.php',
data: 'selectedKeyword=cereals&selected_ids=&selectedDatasettype=1&p=',
dataType: 'html'
})
.done(function( html ) {
$( '#output-div' ).append( html );
})
.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});