条件为真时触发Jquery函数

时间:2018-02-06 21:52:57

标签: jquery

当“if”语句的结果为真时,我试图触发Jquery函数。

我尝试过各种各样的方法但没有成功。我正在使用Stephan Wagner的“Jbox”,我已经使用了很多时间没有任何问题所以我认为它必须是我写的代码。

我的代码

var PassSet = '<?php echo $_SESSION['_amember_user']['passwordchange'];?>';
if(PassSet == 0) {
    $(document).ready(function() {
        var memberid = '<?php echo $_SESSION['_amember_user']['member_id'];?>';
        new jBox('Modal', {
            width: 350,
            height: 250,
            title: 'FlightX: Ack Alert',
            theme: 'TooltipBorder',
            closeButton: 'title',
            draggable: 'title',
            //trigger: 'click',
            animation: 'false',

            position: {
                x: 'center',
                y: 'center'
            },

            onCloseComplete: function() {
                this.destroy();
                $('#jBox-overlay').remove();
            },

            ajax: {
                url: 'flightx_change_password.php?UserID=' + memberid,
                reload: 'strict'
            }
        });
    }); 
}

非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

$(document).ready()处理程序错位。

这是一个处理程序&#34;等待&#34;对于文档完全加载时发生的事件(图像除外),以便DOM元素全部存在且脚本可以运行。

所以我们的想法是将值(var PassSet)和条件放在那个准备好的处理程序中。

现在,PHP echo 传递的值不应该用引号括起来。这使它成为一个字符串...更好地将它作为整数传递。

修改
如果你想使用Ajax加载模态的内容并打开它,我将尝试这样做:

$(document).ready(function() {

  var PassSet = <?php echo $_SESSION['_amember_user']['passwordchange'];?>;  // Integer here! No quotes.

  // Check the value in console:
  console.log(PassSet);
  console.log(typeof(PassSet));  // Should give "number" in console.

  if(PassSet == 0) {

    var memberid = '<?php echo $_SESSION['_amember_user']['member_id'];?>';

    $.ajax({
      url: 'flightx_change_password.php',
      method: 'post',
      data:{UserID: memberid},
      success: function(response){

        new jBox('Modal', {
          width: 350,
          height: 250,
          title: 'FlightX: Ack Alert',
          theme: 'TooltipBorder',
          closeButton: 'title',
          draggable: 'title',
          //trigger: 'click',
          animation: 'false',

          content: response // Response from the Ajax request

          position: {
              x: 'center',
              y: 'center'
          },

          onCloseComplete: function() {
              this.destroy();
              $('#jBox-overlay').remove();
          }
        })
      }

    });

  }
});