点击是否有回调功能?

时间:2011-10-18 13:05:55

标签: javascript jquery

假设我有以下链接:

<a  href="#shippingaddress" onclick="return validateBillingAddress(document.addressInput,'ADDR_CONTINUE_ACTION',event);" >

修改
我正在使用多页面方法将不同的部分(div)显示为页面 在那个验证函数中我正在验证表单,如果一切正常,那么显示隐藏的<div>并且在<div>可见<spans>之后将被jquery移动框架应用,直到除此之外div被隐藏没有span,但是当div变得可见时,jquery mobile会被应用到它上并附加一些跨度..我需要访问这个跨度:

<span>blah</span>

所以我想在<span>事件后更改此click的文字,因为在<span>事件后会显示click

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

在验证功能中,您可以执行以下操作:

 <div id="someDiv" style="display:none">
     <span id="someSpan"></span>
 </div>

 <script type="text/javascript">
     function validateBillingAddress() {
         var valid = true;
         ... // do whatever you need to validate your input here and update valid variable

         if (valid) {
             $('#someDiv').show();  
             // if the validation is succesful invoke some function in the framework here
             $.ajax({
                 ...
                 success: function() {
                     //append the span to the div here
                     $(#someDiv').append('The span HTML content');
                 },
                 ...
             });                

         }
     }
 </script>

答案 1 :(得分:0)

不要使用内联javascript ...

$("#validate").click(function(){
    // validate billing address
});

<a id="validate">Validate</a>

要创建跨度并将侦听器附加到它,请附加到div:

$("<span />").click(function(){
    $(this).text("New Text");
}).appendTo("#divToShow");

编辑:

由于您没有提供太多信息,我唯一可以帮到您的是:

1-要访问div中的所有范围,请执行以下操作:

$("#myDivId span")

2-要仅访问div的直接子节点,请执行以下操作:

$("#myDivId > span")

3-要仅访问div中的最后一个范围,请执行以下操作:

$("#myDivId span:last")

更重要的是,只有你提供一些实际生成的代码

答案 2 :(得分:0)

您实际上可以将validateBillingAddress嵌入到另一个函数中,其中包含“回调”行

function doValidate( event ) {
  validateBillingAddress(document.addressInput,'ADDR_CONTINUE_ACTION',event);
  $('#spanElement').text( 'new text' );
}

然后

<a onclick="return doValidate( event );" >

如果您避免使用onclick属性来支持非侵入性事件处理(如

),那会更好
$('#aElement').click( function( e ) {
  doValidate( e );
});