2

我现在设置为使用div标签来触发隐藏的单选按钮。但是,当我单击一次时div,单选按钮会切换,但我必须双击 div 才能通过 ajax 发送数据。关于导致此问题的原因以及如何解决的任何想法?

jQuery

$(function(){
    $(".albumcover_tag").click(function(e){
        e.stopPropagation();
        $('.edit_album').trigger('submit.rails');
    });
    $(".albumcover-item").click(function(e){
        $('.albumcover-item').removeClass("radio-selected");
        $(this).addClass("radio-selected");
        $(this).find('input').click();
        return false;
    });
    $('.albumcover_tag:checked').parent('.albumcover-item').addClass("radio-selected");
});

HTML

<div class="albumcover-item">
    <label for="album_albumcover">Set as Album Cover </label>
    <input class="albumcover_tag" id="album_albumcover_id_2" name="album[albumcover_id]" type="radio" value="2">
</div>

注意:我希望能够在单击时启用 ajax,而不是双击。

4

3 回答 3

0

尝试这个:

$(function(){
    $(".albumcover-item").click(function(e){
        $('.albumcover-item').removeClass("radio-selected");
        $(this).addClass("radio-selected");
        $('.edit_album').trigger('submit.rails');
    });
});
于 2013-04-26T06:44:03.997 回答
0

你会在这里找到答案,你必须在触发双击时取消单击。

检测到双击事件时需要取消单击/鼠标事件

function singleClick(e) {
    // do something, "this" will be the DOM element
}

function doubleClick(e) {
    // do something, "this" will be the DOM element
}

$(selector).click(function(e) {
    var that = this;
    setTimeout(function() {
        var dblclick = parseInt($(that).data('double'), 10);
        if (dblclick > 0) {
            $(that).data('double', dblclick-1);
        } else {
            singleClick.call(that, e);
        }
    }, 300);
}).dblclick(function(e) {
    $(this).data('double', 2);
    doubleClick.call(this, e);
});
于 2013-04-26T06:42:40.890 回答
0

我通过将 ajax 请求移动到 div 元素的click()触发器来修复它。

$(".albumcover-item").click(function(e){
    ...
    $('.edit_album').trigger('submit.rails');
    ...
});
于 2013-04-26T07:04:31.030 回答