将Prototype更改为jQuery Ajax调用

时间:2014-01-23 08:59:08

标签: javascript jquery ajax toggle prototype

我想将我的Ajax调用从Prototype更改为jQuery。但不知何故,事情还没有奏效。 .....几个小时后,得到更清晰的画面,事情正在发挥作用。

为了让其他人有可能看到如何完成“迁移”,我发布了这个......

我的原型是这样的:

<li>
    <a href='#' onclick="variables(); Effect.toggle('datasets','BLIND'); return false;">
        <div class='additionalLinksMenuBar'>&nbsp;</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'>&nbsp;</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>  

1 个答案:

答案 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 );
                });