【问题标题】:jQuery - How can i make this trigger work, so that i have the value 100?jQuery - 我怎样才能使这个触发器工作,所以我有值 100?
【发布时间】:2025-12-21 16:35:11
【问题描述】:

如何触发点击并获得值 100? (触发点击有效,但警报未显示该值 100)。

// Manually clicked 
$('.clickhere').live("click", function(){
  $(this).parent().parent().parent().parent().parent().parent().parent().find('.triggerclick').trigger('click'); 
});


// Trigger click 
$(".triggerclick").live("click", function() {

  var root = $(this);
  var id = root.find(".test").text();   // should show 100 
  alert(id);

  return false;
});

<!-- based on this structure -->
<div class="triggerclick">
  <img class="left"/>
  <div class="left">
    <div>    </div>
    <div>    </div>
    <div>
      <ul>        
        <li> 
          <a>
            <span class="clickhere">Main Click is here</span>
          </a>          
        </li>        
      </ul>
    </div>    
    <div>     </div>
    <div>     </div>
  </div>


  <code class="test">100</code>

</div>

【问题讨论】:

  • 为我工作:jsfiddle.net/rQZWH
  • 你在不同的浏览器中测试过吗?当我在 Google Chrome(版本 17.0.963.78 m)中单击它时,我收到 100 提示。
  • 多么奇怪,这里的逻辑还是一样。
  • @edmastermind29:jsfiddle.net 在 Chrome/Opera/Firefox/Midori 中运行。
  • 我在安抚 gdoron(但我觉得你没有提到 IE 很有趣)而且我相信你最终不会使用 jsfiddle 来实现这段代码。

标签: javascript jquery jquery-ui jquery-selectors


【解决方案1】:

您的示例似乎运行良好,但为什么会这样?

$('.clickhere').live("click", function(){
  $(this).parent().parent().parent().parent().parent().parent().parent().find('.triggerclick').trigger('click'); 
});

什么时候可以做:

$('document').on('click', '.clickhere', function(){
  $(this).parents('.triggerclick').trigger('click'); 
});

live() 已弃用,on() 是新人。

【讨论】:

  • 我正在使用最新的 jQuery 库。但在我的代码中,我将所有的 .live 替换为 .on,但不能用作点击事件修补程序(就像 .live 一样)。
  • Uncaught TypeError: Object [object Object] has no method 'on' (anonymous function)
  • 确保您使用的是 jQ 1.7+
  • /*! jQuery v1.7.1 jquery.org/license */ 是的,但我得到了那个错误。
  • +1。请注意,您的委托事件是错误,您没有传递选择器,所以这是一个简单的事件回调。
【解决方案2】:

【讨论】: