php - jQuery AJAX 加载两次

标签 php javascript jquery html

我正在编写一个站点,但遇到了问题。

我有以下 jQuery 代码:

$('input[type="text"][name="appLink"]').keyup(function() {

    var iTunesURL = $(this).val();
    var iTunesAppID = $('input[name="iTunesAppID"]').val();

    $.ajax({
        type: 'POST',
        url: jsonURL,
        dataType: 'json',
        cache: false,
        timeout: 20000,
        data: { a: 'checkiTunesURL', iTunesURL: iTunesURL, iTunesAppID: iTunesAppID },
        success: function(data) {
            if (!data.error) {
                $('section.submit').fadeOut('slow');
                //Modifying Submit Page
                setTimeout(function() {
                    $('input[name="appLink"]').val(data.trackViewUrl);
                    $('div.appimage > img').attr('src', data.artworkUrl512).attr('alt', data.trackName);
                    $('div.title > p:nth-child(1)').html(data.trackName);
                    $('div.title > p:nth-child(2)').html('by '+data.sellerName);
                    $('span.mod-category').html(data.primaryGenreName);
                    $('span.mod-size').html(data.fileSizeBytes);
                    $('span.mod-update').html(data.lastUpdate);
                    $('select[name="version"]').html(data.verSelect);
                    $('input[name="iTunesAppID"]').attr('value', data.trackId);
                }, 600);
                //Showing Submit Page
                $('section.submit').delay('600').fadeIn('slow');
            } else {
                $('.json-response').html(data.message).fadeIn('slow');
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
            //$('.json-response').html('Probléma történt! Kérlek próbáld újra később! (HTTP Error: '+errorThrown+' | Error Message: '+textStatus+')').fadeIn('slow');
            $('.json-response').html('Something went wrong! Please check your network connection!').fadeIn('slow');
        }
    });
});

有时(随机地)内容淡入淡出两次。 你能告诉我哪里出了问题吗?

提前致谢。

最佳答案

我猜页面是从 javascript 动态生成的,

如果你执行了两次下面的函数,那么因为它执行了两次,所以有两个事件,
所以更好的方法是解除绑定(bind)所有以前的 'keyup' 事件并重新绑定(bind)它。

试试这个,

 $('input[type="text"][name="appLink"]').unbind('keyup').keyup(function() {

 });

关于php - jQuery AJAX 加载两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797959/

相关文章:

php - mysql记录被删除,不知道为什么

javascript - 使用 http :www as optional using regex 验证 url

jQuery在PX中获取元素宽度

php - 查询中的 Symfony 1 Doctrine 查询

javascript - PHP 在 URL 字符串中连接变量

php - 更新11M行数据库和my.cnf优化

php - ajax formdata append 不适用于键值样式

javascript - 保存文件时 JS/JSX 自动缩进错误

javascript - Lodash debounce 触发每一个变化

javascript - 当属性不存在时忽略 for 循环中的大小写