【问题标题】:toElement only seems to work in Chrome, not IE or FFtoElement 似乎只在 Chrome 中工作,而不是 IE 或 FF
【发布时间】:2014-05-07 06:34:25
【问题描述】:

我有以下 Javascript,它只能在 Chrome 中运行,我不知道为什么:

//makes appointments draggable
    $("._ts").sortable({
        connectWith: "._ts", 
        revert: "true",
        cancel: ".new_appt",

    stop: function(e){
        var element =  e.toElement; 
        var date = $(element).parents('.route_container').find('.date h2').html(); 
        var timeslot = $(element).parents('.timeslot').attr('id'); 
        var tAppt_id = $(element).attr('id'); 
        console.log("Date:."+date); 
        console.log("time:."+timeslot); 
        console.log("route:."+tAppt_id); 

        $.ajax({
            type: "post",
            dataType: "json",
            url: ajaxurl, 
            data:{action: "update_appointments", date: date, timeslot: timeslot, appt_id: tAppt_id},
            success: function(response){
                if(response.type == "success"){
                    console.log("Update appointment worked."); 
                    console.log("Date:."+response.date); 
                    console.log("time:."+response.timeslot); 
                    console.log("route:."+response.timeslot); 



                    $(this).parents('.delete_appt').hide(); 
                }
            }
        });
    }

});

问题是变量datetimeslottAppt_id返回为undefined。这同样适用于 Chrome;但是,仅在 Chrome 中。不适用于 IE 或 FF。

我也尝试过使用e.currentTargete.relatedTarget 都不起作用。有人可以告诉我我做错了什么吗?

【问题讨论】:

    标签: jquery jquery-ui internet-explorer google-chrome


    【解决方案1】:

    看起来你正在使用 jQuery-UI Sortable。在这种情况下,您将获得 jQuery event 对象作为事件处理程序的第一个参数。要获取事件目标元素,您需要使用 target 属性:

    var element = e.target;  
    

    【讨论】:

    • 我刚刚意识到你给我的答案得到了原点元素,我怎么才能得到项目被丢弃的元素?
    • 根据documentation,它将是来自处理程序第二个参数stop: function(e, ui){ui.item
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2012-10-13
    • 2016-02-05
    • 2011-12-17
    • 2010-12-05
    • 2015-01-21
    相关资源
    最近更新 更多