1

Twitter Bootsrapで bootbox を使用しようとしています。

以下のコードで使用するthis.attr('href');と、TypeError: this.attr is not a function.

に変更すると、$(this).attr('href');が得られUndefinedます。

 <a class="alert" href="list_users.php?id=123">Delete user</a>

 <script src="bootbox.min.js"></script>
    <script>
    $(document).on("click", ".alert", function(e) {
        e.preventDefault();

        bootbox.confirm("Are you sure?", function(result) {

        if (result) {
            document.location.href = this.attr('href'); // doesn't work
            document.location.href = $(this).attr('href'); // Undefined
        }               
    });

    });
</script>

何か案が?

4

2 に答える 2

1

問題は、thisまたは$(this)もはやリンクを指していないことですが、bootbox-callback. $(this)これは、指している変数を格納することで修正できます。これは、同じオブジェクトを複数回使用している場合にも有効であることに注意してください。

$(document).on("click", ".alert", function(e) {
    e.preventDefault();

    var obj = this;

    bootbox.confirm("Are you sure?", function(result) {
    if (result) {
        document.location.href = obj.href;
    }               
});
于 2013-06-10T22:00:53.957 に答える