2011-12-08 88 views
2

我搜索並找不到解決方案。希望我能忽略一些簡單的事情。SimpleModal確認並繼續到原始href

什麼,我追求的是一個標準的jQuery確認,一拉:

$('.confirm').click(function(){ 
    var answer = confirm('Delete '+jQuery(this).attr('title')); 
    return answer // answer is a boolean 
});  

不過,我想使用SimpleModal的警告窗口。我可以讓SimpleModal出現並工作,如果我做任何事情除了嘗試並獲得原始的href繼續應該在SimpleModal對話框中單擊「是」。

代碼,因爲它目前爲.....

jQuery(function ($) { 

$('.confirm').click(function (e) { 
    e.preventDefault(); 
    confirm("", function() { 
     //alert('yes'); 
     $('.confirm').trigger('click'); 
    }); 
}); 
}); 

function confirm(message, callback) { 
$('#confirm').modal({ 
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>", 
    position: ["20%",], 
    overlayId: 'please-wait', 
    containerId: 'confirm-container', 
    onShow: function (dialog) { 
     var modal = this; 
     $('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title')); 

     // if the user clicks "yes" 
     $('.yes', dialog.data[0]).click(function() { 
      // call the callback 
      if ($.isFunction(callback)) { 
       callback.apply(); 
      } 
      // close the dialog 
      modal.close(); 
     }); 
    } 
}); 
} 

我也得到了警報在確認功能註釋掉。警報確實有效。但是,如何讓瀏覽器繼續保持原始的href?

謝謝!

回答

1

所有你需要修改你的點擊處理程序通過鏈接的URL首先:

jQuery(function ($) { 
    $('.confirm').click(function (e) { 
     e.preventDefault(); 
     confirm($(this).prop("href"), "", function() { 
      $('.confirm').trigger('click'); 
     }); 
    }); 
}); 

如果你正在使用jQuery 1.6或更低,使用的$(this).attr("href")代替.prop()

然後修改該功能以使用該URL:

function confirm(url, message, callback) { 
    $('#confirm').modal({ 
     closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>", 
     position: ["20%",], 
     overlayId: 'please-wait', 
     containerId: 'confirm-container', 
     onShow: function (dialog) { 
      var modal = this; 
      $('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title')); 

      // if the user clicks "yes" 
      $('.yes', dialog.data[0]).click(function() { 
       // call the callback 
       if ($.isFunction(callback)) { 
        callback.apply(); 
       } 
       // close the dialog 
       modal.close(); 

       // transfer to the url: 
       window.location.assign(url); 
      }); 
     } 
    }); 
} 
+0

謝謝,Rory。我不得不修改一點點。雖然prop('src「)和attr('src')都沒有工作,但是prop('href')確實有效 – Scott

+0

對不起 - 這是一個愚蠢的錯誤,我已經編輯了答案。將其標記爲接受的答案。 –