Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此代码没有';我好像没按这个按钮。什么';出什么事了?_Javascript_Jquery_Advertisement Server - Fatal编程技术网

Javascript 此代码没有';我好像没按这个按钮。什么';出什么事了?

Javascript 此代码没有';我好像没按这个按钮。什么';出什么事了?,javascript,jquery,advertisement-server,Javascript,Jquery,Advertisement Server,我正在为一个客户做一些事情,一个代理已经构建了一个小jQuery来启动双击泛光灯标记,但由于某些原因,该标记不起作用: <script type="text/javascript"> $(function () { //var origOnClick = $('#trackingButton').attr("onclick"); $('#trackingButton').click(fireFloodlight); function fireFloodlig

我正在为一个客户做一些事情,一个代理已经构建了一个小jQuery来启动双击泛光灯标记,但由于某些原因,该标记不起作用:

<script type="text/javascript">
$(function () {

    //var origOnClick = $('#trackingButton').attr("onclick");
    $('#trackingButton').click(fireFloodlight);
    function fireFloodlight() {
        if (Page_IsValid) {
            var axel = Math.random() + "";
            var a = axel * 10000000000000;
            $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
            //eval(origOnClick);
        }
    }

});
</script>
如何添加“跟踪”按钮?如果您是通过jQuery执行此操作,请在上使用而不是单击

 $('body').on('click','#trackingButton',function(){
      console.log("Page_IsValid: "+Page_IsValid);
      if (Page_IsValid) {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
      }
    });
$('body')。在('click','trackingButton',function()上{
log(“Page\u IsValid:+Page\u IsValid”);
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
}
});
Page_IsValid应该为true,并且应该将您的img添加到DOM中


工作正常吗?

您实际上已经为同一事件向同一元素分配了两个事件处理程序。据我所知,这是不可能的

此外,您应该将函数调用封装在匿名函数中,如下所示:

$('#trackingButton').click( function() {

    fireFloodlight();

});
您可能希望避免直接在HTML标记中分配事件处理程序,这通常被认为是一种不好的做法

在调用时,请确保您的#trackingButton已存在于DOM中,并尝试将其分配给click事件处理程序


另外,当您尝试分配事件处理程序时,请确保控制台日志中没有错误,并且没有其他插件或脚本正在修改DOM。

如果此代码位于HTML文件的
head
标记中,它将无法正常工作。JavaScript将在页面完成呈现之前尝试执行。因此,当代码执行时,根据解析器,
input
标记将不存在。您可以将它放在一个文件中,或者只需将
脚本
标记放在HTML文档的末尾(在
正文
标记的末尾之前)

除此之外,如果您使用的是最新版本的jQuery,那么您将希望使用
.On()
而不是
.live()
.delegate()
。单击()。在最新版本的jQuery中,前两个在技术上已被弃用(尽管我高度怀疑它们是否会在一段时间内被删除),而且,如果我没记错的话,
。click()
只是
.on()
的包装器,因此仅使用
.on()
在技术上更快

我将给出两个如何使用
.on()
的示例

第一个示例是在最初加载页面后,简单地将事件添加到
#trackingButton
元素

<script type="text/javascript">
    $(document).ready(function () {
        $('#trackingButton').on('click',function() {
            if (Page_IsValid) {
                var axel = Math.random() + "";
                var a = axel * 10000000000000;
                $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
            }
        });
    });
</script>

我希望这些例子能有所帮助

您的html节点有一个显式的
onclick
属性,根据您的代码,该属性不会被停用

WebForm\u DoPostBackWithOptions
做什么?如果在某些配置中,此函数返回
false
,将阻止调用其他处理程序

如果可以对生成html的代码执行操作,我建议从节点中删除此
onclick
属性,并将其声明为jquery单击处理程序。

尝试以下操作:

        //var origOnClick = $('#trackingButton').attr("onclick");
        $('#trackingButton').live("click", function(){

            if (Page_IsValid) {
                var axel = Math.random() + "";
                var a = axel * 10000000000000;
                $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
                //eval(origOnClick);
            }
         });
//var origOnClick=$('#trackingButton').attr(“onclick”);
$(“#trackingButton”).live(“单击”,函数(){
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
}
});

此代码同时触发
onclick
事件和绑定到
#trackingButton
选择器的
click
事件:

您可以移动
onclick
事件来触发函数,而不是将其内联:

<input type="submit" onclick="myPostBack()" name="ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton" value="Get your quick quote" id="trackingButton" class="button" />
注意:我设置了一个警报作为示例,以验证是否执行了
myPostBack
功能

如果未执行
WebForm\u DoPostBackWithOptions
,请检查是否存在语法错误(使用
触发js错误),并传递正确的参数…了解更多信息

…js(续)

功能fireFloodlight(){
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
//附加另一个图像以进行验证
$(“正文”)。附加(“”)
}
}
$(函数(){
//使用.on()需要jQuery 1.7+
$(“#trackingButton”)。在(“单击”,函数()上{
消防泛光灯();
});
});

假设
Page\u是有效的
true
,这应该会起作用……例如……如果一切正常,您应该会看到回发警报以及jQuery图像;)

您已经准备好了文档上的函数,您的问题是,如果您想调用类似于t的函数,您调用该函数的方式是错误的您应该将其声明为函数表达式():

$(函数(){
var fireFloodlight=函数(){
如果(真){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
警惕(“ello”);
}
}
$(“#跟踪按钮”)。单击(消防泛光灯);
});

正在工作。

提交按钮可能正在触发请求,因此您永远无法看到图像被添加到正文中。
event.preventDefault()
可能会解决此问题

$('#trackingButton').click(function(event) {
    event.preventDefault();
    if (Page_IsValid) {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
        //eval(origOnClick);
    }
}
$(“#跟踪按钮”)。单击(函数(事件){
event.preventDefault();
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
}
}

那么页面是否有效?您是否开始执行控制台日志的
页面是否有效?@adeneo d'oh.不,我不会尝试此操作。谢谢您是否将console.log放在if语句的正上方,并通过单击按钮将其打印到控制台?是否会发生动态加载
#trackingButton
元素的情况?@VisioN it's not动态添加,让我也为这个按钮粘贴HTML。它是
<script type="text/javascript">
    $(document).ready(function () {
        $(document).on('click','#trackingButton',function() {
            if (Page_IsValid) {
                var axel = Math.random() + "";
                var a = axel * 10000000000000;
                $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
            }
        });
    });
</script>
        //var origOnClick = $('#trackingButton').attr("onclick");
        $('#trackingButton').live("click", function(){

            if (Page_IsValid) {
                var axel = Math.random() + "";
                var a = axel * 10000000000000;
                $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
                //eval(origOnClick);
            }
         });
<input type="submit" onclick="myPostBack()" name="ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton" value="Get your quick quote" id="trackingButton" class="button" />
function myPostBack() {
/*
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton", "", true, "Form", "", false, false))
*/
    alert("postback executed")
}
function fireFloodlight() {
    if (Page_IsValid) {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
        //eval(origOnClick);

        // append another image for verification purposes
        $("body").append('<img src="http://www.devaldi.com/wp-content/uploads/2009/10/jquery-logo.gif" alt="jquery" />')
    }
}

$(function() {
  // using .on() requires jQuery 1.7+
    $('#trackingButton').on("click", function() {
        fireFloodlight();
    });
});
$(function () {

var fireFloodlight = function()  {
    if (true) {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        $("body").append('<img src="http://tejedoresdesuenos.com.mx/wp-content/uploads/2011/06/google.jpg" width="50" height="10" alt=""/>');
        alert('ello');
    }
}

$('#trackingButton').click(fireFloodlight);


});
$('#trackingButton').click(function(event) {
    event.preventDefault();
    if (Page_IsValid) {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        $("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
        //eval(origOnClick);
    }
}